On 6/7/07, Colm MacCarthaigh <colm@stdlib.net> wrote:
> On Thu, Jun 07, 2007 at 12:24:07AM +0300, Lucian Adrian Grijincu wrote:
> > 1. kill AI_ADDRCONFIG for APR_UNSPEC
>
> In my opinion, AI_ADDRCONFIG is a useful default flag and prevents
> unneccessary delay and lookups.
>
> > 2. document "::1" and any other link-local addresses and hostnames as
> > invalid if APR_UNSPEC is used.
>
> This is not true, see my other mail.
>
> > 3. retry without AI_ADDRCONFIG if first try fails
>
> This sucks. I prefer this:
>
> 4. Add APR_NUMERIC_ADDRESS, and set the AI_NUMERICHOST hint, when
> passed *don't* set AI_ADDRCONFIG. Document that people who
> want to perform a literal IP translation - regardless of
> connectivity - should use it.
>
> E.g., if I want to turn "::1" into a structure I can use
> and I totally don't care if I have general IPv6 connectivity
> or if I even have connectivity to ::1 itself, I should use this
> flag.
>
> --
> Colm MacCárthaigh Public Key: colm+pgp@stdlib.net
>
<snip from=man getaddrinfo(3)>
If hints.ai_flags contains the
AI_NUMERICHOST flag then the node parameter must be a numerical network
address. The AI_NUMERICHOST flag suppresses any potentially lengthy
network host address lookups.
</snip>
how does this work with string names like "localhost" too?
As I understand the APR interface that's misbehaving now needs to
support hostnames besides IPs represented as strings.
Suppose that a this string is read from the commandline as a
parameter. The app coder cannot pass this new APR_NUMERIC_ADDRESS
flag, because he doesn't know if the string he received is a name for
a link-local IP.
--
Lucian Adrian Grijincu