I tracked this down to the resolution of an unspecified local address. On some systems, getaddrinfo('',0,0,2,17,1) returns 127.0.0.1, then ::1; on other systems, it's vice versa. The order apparently depends on /etc/gai.conf; apparently, there was also a recent change in the library defaults (to return IPv4 before v6).
INET6 determines that the remote address is IPv6, and creates an IPv6 socket. It then tries to bind it to '' (as no local address was given); this determines that '' is an IPv4 address, so binding fails. I think the real error is that it tries to bind at all even if no local address or port was given. It does so because lres is defined, i.e. because it was able to resolve the name '' (around line 211). As it is overwriting laddr for Win32, it should remember the value of laddr before that, and then bind only if either laddr or lport were given. If no local address was given, but a local port, binding needs to occur, but it needs to consider the server address family, so it needs to redo getaddrinfo (passing AI_NUMERICHOST to avoid name lookups). -- To UNSUBSCRIBE, email to debian-bugs-dist-requ...@lists.debian.org with a subject of "unsubscribe". Trouble? Contact listmas...@lists.debian.org