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à "