> Thanks, that explains how we get to 'Address already in use'. > > This opens up a couple of questions: > > - creating a socket listening on '::' apparently does work > (it is tested in the BEGIN phase, and reported by 'have PF_INET6'), > but creating a socket listening on '::1' (i.e. a loopback address) > fails. Are you running spamd in jail? Does a loopback interface > have an IPv6 address assigned? Is it '::1'? Or if you think the > IPv6 is not supported on that host, why then does creating a > socket listening on '::' succeed? > > - why did it work with older versions of perl and modules > > - this chain of events shows that the logic in server_sock_setup_inet() > and/or its caller is flawed. When multiple sockets are to be created > and not all succeed, we'd need to undo the successfully created > sockets before bailing out on error - or alternatively, make do > with partially fulfilling the request. > > Please open up a ticket on the bugzilla. > > Mark
Bug 7106 has been created. For the benefit of those reading this thead, here is a last bit of information. The operating system (Solaris 10) supports IPV6 but there are no IPV6 interfaces defined. So binding to ::1 can not succeed. Here is the debug output with the old Perl and old modules: dbg: spamd: socket module of choice: IO::Socket::IP 0.27, Socket 2.013, have PF_INET, no PF_INET6, using Socket::getaddrinfo, AI_ADDRCONFIG is suported dbg: spamd: socket specification: "localhost", IP address: localhost, port: 783 dbg: spamd: attempting to listen on IP addresses: 127.0.0.1, port 783 dbg: spamd: creating IO::Socket::IP socket: Listen: 128, LocalAddr: 127.0.0.1, LocalPort: 783, Proto: tcp, ReuseAddr: 1, Type: 2, V6Only: 1 Tom Schulz Applied Dynamics Intl. sch...@adi.com