httpd-test-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joe Orton <>
Subject Re: Listen<port> is invalid
Date Wed, 23 Feb 2005 16:29:22 GMT
On Wed, Feb 23, 2005 at 07:37:54AM -0800, Justin Erenkrantz wrote:
> --On Wednesday, February 23, 2005 9:42 AM +0000 Joe Orton 
> <> wrote:
> >But there is no way to differentiate between any different interfaces
> >for the address (without doing magic), so I would say that is a resolver
> >misfeature.
> But, the resolver was explicitly told that the socket addresses will be 
> used to connect() - not for bind().  That's why I'm not convinced this 
> behavior is 'wrong' per se.

A connect() to is just the same; I don't see why it would
ever be useful to include two completely identical addresses in the
getaddrinfo results.

Simply passing AI_PASSIVE does make it omit the duplicates?
( is useful for testing getaddrinfo

> >to configure httpd to bind only to "all IPv4 addresses on the local host
> >with port X" (right?), which is certainly a valid and useful thing to
> >do.
> >
> >I think httpd should work around this: does something like the attached
> >work? (tested only to compile ;) Not necessarily the best place to put
> >this logic.
> It seems that we should have a better internal semantic than passing in a 
> bogus address to connect to.  Perhaps httpd in alloc_listener should 
> intercept the '' case and set the hostname to NULL and set the 
> family to IPv4? This would preserve the correct internal semantics we're 
> looking for such that AI_PASSIVE can be set so we get bind()able addresses.
> Would that be better?  -- justin

INADDR_ANY is not really a bogus address, but yes I think that does make
more sense.  It would also need to translate "::" into
hostname=NULL+family=AF_INET6 for consistency I suppose.  But triggering
the AI_PASSIVE path is generally desirable.

Do you have time to try that out?


View raw message