Skip to content

uftpd v1.9

Choose a tag to compare

@troglobit troglobit released this 23 Jul 00:09
· 455 commits to master since this release

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 NLST FTP command, needed for multiple get operations.
    This fixes issue #2, thanks to @oz123 on GitHub for pointing this out!
  • Add support for FEAT and HELP FTP commands used by some clients.

Fixes

  • Fix issue #3: do not sleep 2 sec before exiting. Simply forward the
    SIGTERM to 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() and sig_init(), we never got the SIGCHILD to be able to
    reap any exiting FTP/TFTP sessions. This resulted in zombies(!) when
    not being called as uftpd -n
  • Fix issue #5: LIST and NLST ignores path argument sent by client.
  • Fix issue #6: FTP clients not detecting session timeout. Caused by
    uftpd not performing a proper shutdown() on the client socket(s)
    before close().
  • 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.