helpers.py: errno is used by this module, but not imported.
ssnet.py: deal with a possible connect/getsockopt(SO_ERROR) race.

Seems to affect Linux servers.  Ed Maste says the patch fixes it for him.
Pass socket through to handlers. Required for IPv6 support.
Send DNS request back on same sock we received it on.
Move nested functions to top level.
Split expiration into handling into another function.
Rename TCP specific commands to clarify they are TCP specific.
Rename listener to tcp_listener, as it is TCP specific.
Rename dnslistener to dns_listener for consistency with tcp_listener.
Rename onaccept to onaccept_tcp as it is tcp specific.
When DNS response received, MUX channel no longer required. Delete it.
Introduce independent_listener, will be used for both IPv4 and IPv6
connections.
Improve debugging.
This hack is IPv4 specific, ensure it doesn't get used for other
address families.
Keep track of address family address belongs too.
Make iptables functions work with any table, not just nat.
Make it clear ports are for IPv4.
Rewrite binding code. DNS port may now be different from TCP port.
Choose which method to use for intercepting traffic.
More changes to simplify the upcomming IPv6 patch.