1)	The reverse lookup of the names is sub-optimal. Two schemes I can think of
	doing are:

	a) Use a table to lookup translations. I've had a stab at this, much extra work
	   is needed though.
	b) Convert www[0-9]*.domain to www.domain if a DNS lookup on www.domain returns
	   the original IP address requested as one of it's IP addresses.

2)	Don't do the DNS reverse lookup for the iginating site, it's not needed for
	anything other than a nice log file.

3)	With all these DNS lookups a cache would be very nice. But caching is not so
	easy as the servers fork and die all the time.

4)	Convert it into a non-forking server that handles multiple connections in a
	single process. Either by a threads library, or the more conventional state
	machine approach.
