Specifically:
* struct udp now contains an array of (up to three) pairs of iaddr,
fd. Code which deals with the fd and addr has been updated to use
loops etc. as appropriate.
* The sockets are created with the right protocol family value.
For AF_INET6, we set IPV6_V6ONLY.
* Specifically, when transmitting, we try all appropriate sockets and
compute the persistent-failure indication as required.
* And a comm_addr now contains an `int ix' for udp.c's benefit,
particularly when logging.
* We use string_item_to_iaddr to convert the string to a socket
address, rather than string_item_to_ipaddr. The latter can cope
only with IPv4 (and is now used only for private vpn addrs,
proxies, etc.).
* The default is now to create both IPv6 and IPv4 sockets.
Left undone are:
* The special secnet proxy protocol has a 4-byte address prepended
which implies IPv4. I don't intend to fix this.
* The authbind support for IPv6 will be in a future patch.
Signed-off-by: Ian Jackson <ijackson@chiark.greenend.org.uk>