utftpd - A tiny TFTP server

Up: Martijn's Homepage  
Prev: An rsync-able gzip   Next: Puzzle solving by computer  

utftpd is a tiny TFTP server whose sole purpose in life is to serve files to X-terminals. Thus, it only implements half the protocol, the part that involves the reading of files. Any writes will simply fail.

I wrote this mainly because the default TFTP server is not very good for this sort of thing, IMHO. It forks off a separate process for each TFTP connection and since an X-terminal loads around 100 files in quick succession on bootup, you end up with many little processes running concurrently.

Some of them got stuck, needing to be killed after a while. It wasn't very good for the load either.

So I wrote utftpd which runs as a single process serving as many concurrent connections as necessary. Each connection is logged to syslog if requested.

April 2004 - Significant improvements provided by Mark Verboom <mverboom (at) corp.home.nl>. Including a daemon mode, a man page, several bugfixes and additional logging. Used to support over 300,000 cable modems.


For example, to serve my X-terminals I use the following command:

/usr/local/bin/utftpd -l /boot/xengine/


Some care went into the coding of this server so it should be very safe. However, nothing is entirely certain. Reports are welcome of course. The daemon must currently run as root to allow binding to the standard TFTP port. You should take precautions such as fire-walling or otherwise protecting the port from the outside world.


If you use this program successfully, I'd like to hear from you. My email address is at the bottom of the page.

utftpd-0.2.tar.gz <-- LATEST

Up: Martijn's Homepage  
Prev: An rsync-able gzip   Next: Puzzle solving by computer  
By Martijn van Oosterhout (kleptog (at) svana.org)
Copyright © 2000-2006 - Last modified 18/05/2004