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