uftpd v1.9
Bug fix release. FTP and TFTP sessions can now run fully in parallel, independent of each other. Also improved compatibility with Firefox built-in FTP client and wget.
Changes
- Upgrade to libuEv v1.2.1+ for improved error handling and a much
cleaner API. - Major refactor of both FTP and TFTP servers to use libuEv better.
- Move to use libite v1.0.0 for
strlcpy(),strlcat(),pidfile()
and more. - Add proper session timout to TFTP, like what FTP already has.
- Add support for
NLSTFTP command, needed for multiple get operations.
This fixes issue #2, thanks to @oz123 on GitHub for pointing this out! - Add support for
FEATandHELPFTP commands used by some clients.
Fixes
- Fix issue #3: do not sleep 2 sec before exiting. Simply forward the
SIGTERMto any FTP/TFTP session in progress, yield the CPU to let
the child sessions handle the signal, and then exit. Much quicker! - Fix issue #4: due to an ordering bug between the main process calling
daemon()andsig_init(), we never got theSIGCHILDto be able to
reap any exiting FTP/TFTP sessions. This resulted in zombies(!) when
not being called asuftpd -n - Fix issue #5:
LISTandNLSTignores path argument sent by client. - Fix issue #6: FTP clients not detecting session timeout. Caused by
uftpd not performing a propershutdown()on the client socket(s)
beforeclose(). - Fix problem with libuEv not being properly cleaned on
distclean. - Fix problem with uftpd not exiting client session properly when client
simply closes the connection.