PDA

View Full Version : Some suggestions


Mr_X
10-16-2003, 01:15 PM
First, bravo for this ftpd, It's the best I ever seen. To contribute to the development, i will register (and because i need a good ftpd)

Today, with a friend, we were speaking of ftpd. He told me he has a glftp (Linux ftpd) that is a very robust software and that ioFTPD is the glftpd of Windows.
We spoke about the manner of glftpd works: a daemon (inetd) wait for a connection and when a user connects, it starts glftp for that user (it start a glftpd for each user connected on its ftp). You'll think that's stupid and why not a big thread instead of lots of little threads. There's a reason: if for any reason, the user makes glftpd crash, it crashes only its connection and not everyone's connection. That's great.
Another thing you'll probably say is "Does it consume lots of memory?" No, each process takes 200Ko of memory. If there's no user logged in, there no glftpd started then it does not consume anything.

All that to say that if io works like this, that will be great but there lots of work to do i know. ;)
Well, as we say in french: "Voilà "

ADDiCT
10-16-2003, 01:45 PM
i'm not sure if u can accept an incoming connection on a socket in another process (in winNT), darkone ? :)

darkone
10-16-2003, 02:35 PM
It is possible, but it ruins scalability. Use of one thread per client, is considered as old-fashioned, very inefficient programming (only few daemons does that - most use thread pools) It does offer better stability... but that's the only advantage it has over thread pools. Disadvantages are so many that I don't even bother to list them.

In otherwords: you don't want to see glftpd like daemon on windows; performance would be something between terrible and horrible, resource usage would be 1-2mb per client, proper synchronization of processess near impossible, and stability not much better that what it is with current core...

I think I have skill to port glftpd to run under cygwin nowdays... might even get it to compile under visual c++ :p