[erlang-questions] : Broken ipv6 behavior?

Matthew Dempsky matthew@REDACTED
Thu Apr 17 10:18:06 CEST 2008


On Thu, Apr 17, 2008 at 1:03 AM, Raimo Niskanen
<raimo+erlang-questions@REDACTED> wrote:
>  That patch uses gethostbyname2, which is just as or even more obsoleted
>  than getipnodebyname. I wonder when I (finally) have added
>  getaddrinfo support if there is need for gethostbyname2 support too?

I tested that patch because the author suggested it worked for him on
Linux, and it's a relatively non-intrusive change.  (I don't
particularly care what functions are used for IPv6 support as long as
they work.)

>  It is strange getipnodebyname works so differently from gethostbyname2
>  on OS X. They should do the same job.

Yeah.

>  The flags to getipnodebyname
>  are (AF_V4MAPPED | AI_ADDRINFO), which means that it should return
>  mapped v4 addresses only if no IPv6 addresses are found and
>  that it should return IPv6 addresses only if the machine runs
>  IPv6 ("Only if IPv6 configured" according to Solaris 10 headers,
>  "Only if there is an interface on the host that is not a loopback
>  interface that has an IPv6 address" according to Steven's
>  Unix Network Programming).

On OS X, AI_DEFAULT is defined to (AI_V4MAPPED_CFG | AI_ADDRCONFIG).

I tested various a few different flags options, and ipv6.google.com
would only resolve when AI_V4MAPPED(_CFG) was *not* set.  0 and
AI_ADDRCONFIG both returned an IPv6 hostent structure.

>  So maybe gethostbyname2 returns IPv6 records even though your
>  machine has no external IPv6 interface?

No, every test I have run regarding Erlang and IPv6 in this thread has
involved a machine with a globally routable IPv6 address configured.



More information about the erlang-questions mailing list