> 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

Reply via email to