pollster while blocking everyone else, pollster will now change
IP addresses every minute. The pollster box will need a secondary
interface (default: eth1) in order to do this. Before each poll,
the mac address of the interface is changed to a random address
with a particular vendor code (default: 00:01:c0 (FitPC)) and a
new address is requested via DHCP. All connections made from
pollster are bound to the new address, forcing them out through
the secondary interface. This caused some problems, since the
poll function for cat.cgi previously relied on urllib, which did
not support binding. I ended up having to subclass
http.client.HTTPConnection and override __init__() and connect().
These changes necessitated two new global configuration variables:
(1) POLL_MAC_VENDOR : the vendor code to use in the random MAC
(2) POLL_IFACE : the secondary interface to use
I also fixed a bug where an empty string would be interpreted as a
valid team name.
into a string until it returns to the poller loop. This allows
poll functions to manipulate the raw responses from the socket
reads. Also added an ACK to tftdp poller so that the tftpd
daemon stops whining about the socket closing without an ACK.