Scott, > We're making a big push on IPv6 readiness in this Ubuntu development cycle, > so I'd appreciate having the patch.
That's very nice to hear! The patch for Net-Server-0.99 is attached, includes documentation changes. As a format of passing sockets to a new incarnation on a warn reload needs an additional field (socket protocol type), servers running unpatched Net-Server-0.99 needs to be stopped/restarted after the patch is applied (e.g. amavisd restart, not: amavisd reload). Also note that some of the Net::Server self-tests will fail. This is not a defect of the patch, but an unwarranted assumption on the part of the test, expecting to receive a single socket when binding to '*' (i.e. any address) - now one gets two sockets (unless you request a bind to a single adress family, like 127.0.0.1 or ::1), one socket for each address family. The change in behaviour (getting two sockets when binding to 'any') does not affect amavisd, and I'd expect it does not affect other servers based on Net::Server module - although there may be a case of some service (yet to be found) which may not like it. A simple solution there is to specify a family-specific binding address instead of '*' or undef. Amavisd-new-2.7.0 allows more flexibility in specifying binding addresses for Net::Server: the $inet_socket_bind can accept an IPv6 address or a list of addresses, and the new @listen_sockets setting is just a generalization of this, allowing for any mix of inet, inet6 and unix sockets in any order. See RELEASE_NOTES. A patched Net::Server does not require amavisd-new-2.7.0. Older versions work just fine, except that some of these new configuration options are not available. If an IPv6 address is specified in @listen_sockets or $inet_socket_bind, this requires a patched Net::Server, the original one would choke on the syntax. Mark
Net-Server-0.99-IPv6.patch.gz
Description: GNU Zip compressed data
