I wrote:

> A guess for what happens: getaddrinfo(NULL, ...) is called to get the
> unspecified address to bind to. getaddrinfo returns both the ipv4
> address 0.0.0.0 and the ipv6 unspecified address (don't remember what
> it looks like). Then the ipv6 address is selected (on the theory that
> if getaddrinfo shouldn't be returning addresses that won't work). But
> passing the address to bind() fails.

Now I'm almost convinced that this is what happens.

> Is there any easy fix, besides fixing lshd to listen on several
> interfaces? I'd prefer not making any radical changes to 1.2.x.

I think it would work to just move the socket call into
choose_address. That is an interface change that propagates to just
half a dozen functions.

/Niels

Reply via email to