|
View:
New views
20 Messages
—
Rating Filter:
Alert me
|
| < Prev | 1 - 2 | Next > |
|
|
Broken ipv6 behavior?It seems like erlang's IPv6 support is broken on my laptop (OS X
10.5.1). I have a publicly routable IPv6 address and can access ipv6.google.com fine, but inet:getaddr cannot resolve the IPv6 address even when asked for inet6. When I look at our DNS cache logs or tcpdump output, I only see A type queries not AAAA type queries for ipv6.google.com from my laptop. matthew@pollux:~$ ping6 -c 3 ipv6.google.com PING6(56=40+8+8 bytes) 2001:470:805a:1:21b:63ff:feca:36df --> 2001:4860:0:1001::68 16 bytes from 2001:4860:0:1001::68, icmp_seq=0 hlim=56 time=178.045 ms 16 bytes from 2001:4860:0:1001::68, icmp_seq=1 hlim=56 time=186.902 ms 16 bytes from 2001:4860:0:1001::68, icmp_seq=2 hlim=56 time=181.385 ms --- ipv6.l.google.com ping6 statistics --- 3 packets transmitted, 3 packets received, 0% packet loss round-trip min/avg/max = 178.045/182.111/186.902 ms matthew@pollux:~$ erl Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] [async-threads:0] [kernel-poll:false] Eshell V5.6.1 (abort with ^G) 1> inet:getaddr("ipv6.google.com", inet6). {error,nxdomain} _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: Broken ipv6 behavior?Make sure the {inet6, Bool} in the inetrc is set to true?
See ERTS User's Guide / Inet configuration. /Tony On 8 apr 2008, at 21.16, Matthew Dempsky wrote: > It seems like erlang's IPv6 support is broken on my laptop (OS X > 10.5.1). I have a publicly routable IPv6 address and can access > ipv6.google.com fine, but inet:getaddr cannot resolve the IPv6 address > even when asked for inet6. > > When I look at our DNS cache logs or tcpdump output, I only see A type > queries not AAAA type queries for ipv6.google.com from my laptop. > > > matthew@pollux:~$ ping6 -c 3 ipv6.google.com > PING6(56=40+8+8 bytes) 2001:470:805a:1:21b:63ff:feca:36df --> > 2001:4860:0:1001::68 > 16 bytes from 2001:4860:0:1001::68, icmp_seq=0 hlim=56 time=178.045 ms > 16 bytes from 2001:4860:0:1001::68, icmp_seq=1 hlim=56 time=186.902 ms > 16 bytes from 2001:4860:0:1001::68, icmp_seq=2 hlim=56 time=181.385 ms > > --- ipv6.l.google.com ping6 statistics --- > 3 packets transmitted, 3 packets received, 0% packet loss > round-trip min/avg/max = 178.045/182.111/186.902 ms > > matthew@pollux:~$ erl > Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] > [async-threads:0] [kernel-poll:false] > > Eshell V5.6.1 (abort with ^G) > 1> inet:getaddr("ipv6.google.com", inet6). > {error,nxdomain} > _______________________________________________ > erlang-questions mailing list > erlang-questions@... > http://www.erlang.org/mailman/listinfo/erlang-questions _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: Broken ipv6 behavior?On Tue, Apr 8, 2008 at 4:22 PM, Tony Rogvall <tony@...> wrote:
> Make sure the {inet6, Bool} in the inetrc is set to true? > > See ERTS User's Guide / Inet configuration. Makes no difference. DNS cache still only shows an A query. matthew@pollux:/tmp$ echo '{inet6, true}.' > inetrc matthew@pollux:/tmp$ erl -kernel inetrc '"/tmp/inetrc"' Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] [async-threads:0] [kernel-poll:false] Eshell V5.6.1 (abort with ^G) 1> inet:getaddr("ipv6.google.com", inet6). {error,nxdomain} _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: Broken ipv6 behavior?I you do this:
inet_db:set_lookup([dns]). inet_db:add_ns({A,B,C,D}). %% Name server must be IPv4, there is a fixme in inet_db. inet:getaddr("ipv6.google.com", inet6). {ok,{8193,18528,0,4097,0,0,0,104}} /Tony On 9 apr 2008, at 01.42, Matthew Dempsky wrote: > On Tue, Apr 8, 2008 at 4:22 PM, Tony Rogvall <tony@...> wrote: >> Make sure the {inet6, Bool} in the inetrc is set to true? >> >> See ERTS User's Guide / Inet configuration. > > Makes no difference. DNS cache still only shows an A query. > > matthew@pollux:/tmp$ echo '{inet6, true}.' > inetrc > matthew@pollux:/tmp$ erl -kernel inetrc '"/tmp/inetrc"' > Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] > [async-threads:0] [kernel-poll:false] > > Eshell V5.6.1 (abort with ^G) > 1> inet:getaddr("ipv6.google.com", inet6). > {error,nxdomain} _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: Broken ipv6 behavior?Okay, so now that breaks looking up localhost:
matthew@pollux:/tmp$ erl -kernel inetrc '"/tmp/inetrc"' Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] [async-threads:0] [kernel-poll:false] Eshell V5.6.1 (abort with ^G) 1> inet_db:set_lookup([dns]). ok 2> inet_db:add_ns({10,0,1,40}). ok 3> inet:getaddr("ipv6.google.com", inet6). {ok,{8193,18528,0,4097,0,0,0,104}} 4> inet:getaddr("localhost", inet). {error,nxdomain} 5> inet:getaddr("localhost", inet6). {error,nxdomain} Looking at my DNS cache logs, Erlang is now sending queries for localhost.local. If I change [dns] to [files, dns], and it gives the same wrong output. (I also tried adding "9.9.9.9 localhost.local" to /etc/hosts, and it still gives nxdomain.) On Tue, Apr 8, 2008 at 5:40 PM, Tony Rogvall <tony@...> wrote: > I you do this: > > inet_db:set_lookup([dns]). > inet_db:add_ns({A,B,C,D}). %% Name server must be IPv4, there is a fixme > in inet_db. > > inet:getaddr("ipv6.google.com", inet6). > {ok,{8193,18528,0,4097,0,0,0,104}} > > > /Tony > > > On 9 apr 2008, at 01.42, Matthew Dempsky wrote: > > > > > On Tue, Apr 8, 2008 at 4:22 PM, Tony Rogvall <tony@...> wrote: > > > > > Make sure the {inet6, Bool} in the inetrc is set to true? > > > > > > See ERTS User's Guide / Inet configuration. > > > > > > > Makes no difference. DNS cache still only shows an A query. > > > > matthew@pollux:/tmp$ echo '{inet6, true}.' > inetrc > > matthew@pollux:/tmp$ erl -kernel inetrc '"/tmp/inetrc"' > > Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] > > [async-threads:0] [kernel-poll:false] > > > > Eshell V5.6.1 (abort with ^G) > > 1> inet:getaddr("ipv6.google.com", inet6). > > {error,nxdomain} > > > > erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: Broken ipv6 behavior?Ok.
When you do it from the prompt you need some more things. inet_db:set_lookup([file,dns]). %% NOT files then you need to (re)load the host list: inet_db:add_hosts("/etc/hosts"). now it should work. Well I guess you want to check why the native version does not work, and possibly put the stuff in an rc file. /Tony On 9 apr 2008, at 03.14, Matthew Dempsky wrote: > Okay, so now that breaks looking up localhost: > > matthew@pollux:/tmp$ erl -kernel inetrc '"/tmp/inetrc"' > Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] > [async-threads:0] [kernel-poll:false] > > Eshell V5.6.1 (abort with ^G) > 1> inet_db:set_lookup([dns]). > ok > 2> inet_db:add_ns({10,0,1,40}). > ok > 3> inet:getaddr("ipv6.google.com", inet6). > {ok,{8193,18528,0,4097,0,0,0,104}} > 4> inet:getaddr("localhost", inet). > {error,nxdomain} > 5> inet:getaddr("localhost", inet6). > {error,nxdomain} > > Looking at my DNS cache logs, Erlang is now sending queries for > localhost.local. > > If I change [dns] to [files, dns], and it gives the same wrong output. > (I also tried adding "9.9.9.9 localhost.local" to /etc/hosts, and it > still gives nxdomain.) > > > On Tue, Apr 8, 2008 at 5:40 PM, Tony Rogvall <tony@...> wrote: >> I you do this: >> >> inet_db:set_lookup([dns]). >> inet_db:add_ns({A,B,C,D}). %% Name server must be IPv4, there is a >> fixme >> in inet_db. >> >> inet:getaddr("ipv6.google.com", inet6). >> {ok,{8193,18528,0,4097,0,0,0,104}} >> >> >> /Tony >> >> >> On 9 apr 2008, at 01.42, Matthew Dempsky wrote: >> >> >> >>> On Tue, Apr 8, 2008 at 4:22 PM, Tony Rogvall <tony@...> >>> wrote: >>> >>>> Make sure the {inet6, Bool} in the inetrc is set to true? >>>> >>>> See ERTS User's Guide / Inet configuration. >>>> >>> >>> Makes no difference. DNS cache still only shows an A query. >>> >>> matthew@pollux:/tmp$ echo '{inet6, true}.' > inetrc >>> matthew@pollux:/tmp$ erl -kernel inetrc '"/tmp/inetrc"' >>> Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] >>> [async-threads:0] [kernel-poll:false] >>> >>> Eshell V5.6.1 (abort with ^G) >>> 1> inet:getaddr("ipv6.google.com", inet6). >>> {error,nxdomain} >>> >> >> _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: Broken ipv6 behavior?On Tue, Apr 08, 2008 at 12:16:44PM -0700, Matthew Dempsky wrote:
> It seems like erlang's IPv6 support is broken on my laptop (OS X > 10.5.1). I have a publicly routable IPv6 address and can access > ipv6.google.com fine, but inet:getaddr cannot resolve the IPv6 address > even when asked for inet6. > > When I look at our DNS cache logs or tcpdump output, I only see A type > queries not AAAA type queries for ipv6.google.com from my laptop. > > > matthew@pollux:~$ ping6 -c 3 ipv6.google.com > PING6(56=40+8+8 bytes) 2001:470:805a:1:21b:63ff:feca:36df --> > 2001:4860:0:1001::68 > 16 bytes from 2001:4860:0:1001::68, icmp_seq=0 hlim=56 time=178.045 ms > 16 bytes from 2001:4860:0:1001::68, icmp_seq=1 hlim=56 time=186.902 ms > 16 bytes from 2001:4860:0:1001::68, icmp_seq=2 hlim=56 time=181.385 ms > > --- ipv6.l.google.com ping6 statistics --- > 3 packets transmitted, 3 packets received, 0% packet loss > round-trip min/avg/max = 178.045/182.111/186.902 ms > > matthew@pollux:~$ erl > Erlang (BEAM) emulator version 5.6.1 [source] [smp:2] > [async-threads:0] [kernel-poll:false] > > Eshell V5.6.1 (abort with ^G) > 1> inet:getaddr("ipv6.google.com", inet6). > {error,nxdomain} Give us the result of: $ uname -a $ cat /etc/resolv.conf $ erl 1> inet_gethost_native:control({debug_level,4}). 2> inet_gethost_native:gethostbyname("ipv6.google.com", inet6). 3> ets:tab2list(inet_db). 4> ets:tab2list(inet_hosts). For starters. > _______________________________________________ > erlang-questions mailing list > erlang-questions@... > http://www.erlang.org/mailman/listinfo/erlang-questions -- / Raimo Niskanen, Erlang/OTP, Ericsson AB _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: Broken ipv6 behavior?On Wed, Apr 9, 2008 at 12:27 AM, Raimo Niskanen
<raimo+erlang-questions@...> wrote: > Give us the result of: > $ uname -a > $ cat /etc/resolv.conf > $ erl > 1> inet_gethost_native:control({debug_level,4}). > 2> inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > 3> ets:tab2list(inet_db). > 4> ets:tab2list(inet_hosts). I'm away from the office right now so I can't test from my OS X laptop, but below is the output from an OpenBSD machine and a Linux machine there that both demonstrate the same misbehavior. (If necessary, I'll rerun the test tomorrow on OS X.) matthew@golem:~$ uname -a OpenBSD golem.mochimedia.net 4.3 GENERIC.MP#1559 amd64 matthew@golem:~$ cat /etc/resolv.conf search mochimedia.net nameserver 127.0.0.1 matthew@golem:~$ ping6 -c 1 ipv6.google.com PING6(56=40+8+8 bytes) 2001:470:1f04:330::2 --> 2001:4860:0:1001::68 16 bytes from 2001:4860:0:1001::68, icmp_seq=0 hlim=57 time=174.165 ms --- ipv6.l.google.com ping6 statistics --- 1 packets transmitted, 1 packets received, 0.0% packet loss round-trip min/avg/max/std-dev = 174.165/174.165/174.165/0.000 ms matthew@golem:~$ echo '{inet6, true}.' > inetrc matthew@golem:~$ erl -kernel inetrc '"./inetrc"' Erlang (BEAM) emulator version 5.6.1 [source] [64-bit] [async-threads:0] [kernel-poll:false] Eshell V5.6.1 (abort with ^G) 1> inet_gethost_native:control({debug_level,4}). inet_gethost[29369] (DEBUG):debug_level = 4 ok 2> inet_gethost_native:gethostbyname("ipv6.google.com", inet6). inet_gethost[29369] (DEBUG):Saved domainname .google.com. inet_gethost[29369] (DEBUG):Created worker[6118] with fd 3 inet_gethost[29369] (DEBUG):Saved domainname .google.com. inet_gethost[6118] (DEBUG):Worker got request, op = 1, proto = 2, data = ipv6.google.com. {error,enotsup} 3> ets:tab2list(inet_db). [{socks5_noproxy,[]}, {res_recurse,1}, {res_id,0}, {hostname,"golem"}, {res_alt_ns,[]}, {cache_refresh_interval,3600000}, {res_inet6,true}, {socks5_port,1080}, {socks5_methods,[none]}, {res_timeout,2000}, {cache_size,100}, {res_domain,"mochimedia.net"}, {res_retry,3}, {res_ns,[]}, {res_lookup,[native]}, {sctp_module,inet_sctp}, {udp_module,inet_udp}, {tcp_module,inet_tcp}, {socks5_server,[]}, {res_search,["mochimedia.net"]}, {res_usevc,false}] 4> ets:tab2list(inet_hosts). [] matthew@lol:~$ uname -a Linux lol 2.6.20-16-generic #2 SMP Tue Feb 12 02:11:24 UTC 2008 x86_64 GNU/Linux matthew@lol:~$ cat /etc/resolv.conf search mochimedia.net nameserver 10.0.1.40 matthew@lol:~$ ping6 -c 1 ipv6.google.com PING ipv6.google.com(2001:4860:0:1001::68) 56 data bytes 64 bytes from 2001:4860:0:1001::68: icmp_seq=1 ttl=56 time=174 ms --- ipv6.google.com ping statistics --- 1 packets transmitted, 1 received, 0% packet loss, time 0ms rtt min/avg/max/mdev = 174.967/174.967/174.967/0.000 ms matthew@lol:~$ echo '{inet6, true}.' > inetrc matthew@lol:~$ erl -kernel inetrc '"./inetrc"' Erlang (BEAM) emulator version 5.6.1 [source] [64-bit] [smp:4] [async-threads:0] [hipe] [kernel-poll:false] Eshell V5.6.1 (abort with ^G) 1> inet_gethost_native:control({debug_level,4}). inet_gethost[8266] (DEBUG):debug_level = 4 ok 2> inet_gethost_native:gethostbyname("ipv6.google.com", inet6). inet_gethost[8266] (DEBUG):Saved domainname .google.com. inet_gethost[8266] (DEBUG):Created worker[8268] with fd 3 inet_gethost[8266] (DEBUG):Saved domainname .google.com. inet_gethost[8268] (DEBUG):Worker got request, op = 1, proto = 2, data = ipv6.google.com. {error,enotsup} 3> ets:tab2list(inet_db). [{socks5_noproxy,[]}, {res_recurse,1}, {res_id,0}, {hostname,"lol"}, {res_alt_ns,[]}, {cache_refresh_interval,3600000}, {res_inet6,true}, {socks5_port,1080}, {socks5_methods,[none]}, {res_timeout,2000}, {cache_size,100}, {res_domain,"mochimedia.net"}, {res_retry,3}, {res_ns,[]}, {res_lookup,[native]}, {sctp_module,inet_sctp}, {udp_module,inet_udp}, {tcp_module,inet_tcp}, {socks5_server,[]}, {res_search,["mochimedia.net"]}, {res_usevc,false}] 4> ets:tab2list(inet_hosts). [] _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?On Wed, Apr 09, 2008 at 12:52:40AM -0700, Matthew Dempsky wrote:
> On Wed, Apr 9, 2008 at 12:27 AM, Raimo Niskanen > <raimo+erlang-questions@...> wrote: > > Give us the result of: > > $ uname -a > > $ cat /etc/resolv.conf > > $ erl > > 1> inet_gethost_native:control({debug_level,4}). > > 2> inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > > 3> ets:tab2list(inet_db). > > 4> ets:tab2list(inet_hosts). > > I'm away from the office right now so I can't test from my OS X > laptop, but below is the output from an OpenBSD machine and a Linux > machine there that both demonstrate the same misbehavior. (If > necessary, I'll rerun the test tomorrow on OS X.) > That it does not work on new Linuxes is a known issue. Linux took another path than Solaris and removed the IPv6 resolver functions inet_gethost_native uses. And that is something that has been on our todo list for a long time now. But since no paying customer needs it it remains a not high enough priority. These functions seem to work on a MacOS X Leopard box in our lab, there I get: inet_gethost_native:gethostbyname("ipv6.google.com", inet6). inet_gethost[63317] (DEBUG):Saved domainname .google.com. inet_gethost[63317] (DEBUG):Created worker[63418] with fd 3 inet_gethost[63317] (DEBUG):Saved domainname .google.com. inet_gethost[63418] (DEBUG):Worker got request, op = 1, proto = 2, data = ipv6.google.com. {error,notfound} Not strange since we do not have working IPv6 here at work. So what is the problem with your MacOS X installation is what puzzels me. > > matthew@golem:~$ uname -a > OpenBSD golem.mochimedia.net 4.3 GENERIC.MP#1559 amd64 > > matthew@golem:~$ cat /etc/resolv.conf > search mochimedia.net > nameserver 127.0.0.1 > > matthew@golem:~$ ping6 -c 1 ipv6.google.com > PING6(56=40+8+8 bytes) 2001:470:1f04:330::2 --> 2001:4860:0:1001::68 > 16 bytes from 2001:4860:0:1001::68, icmp_seq=0 hlim=57 time=174.165 ms > > --- ipv6.l.google.com ping6 statistics --- > 1 packets transmitted, 1 packets received, 0.0% packet loss > round-trip min/avg/max/std-dev = 174.165/174.165/174.165/0.000 ms > > matthew@golem:~$ echo '{inet6, true}.' > inetrc > > matthew@golem:~$ erl -kernel inetrc '"./inetrc"' > Erlang (BEAM) emulator version 5.6.1 [source] [64-bit] > [async-threads:0] [kernel-poll:false] > > Eshell V5.6.1 (abort with ^G) > 1> inet_gethost_native:control({debug_level,4}). > inet_gethost[29369] (DEBUG):debug_level = 4 > ok > 2> inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > inet_gethost[29369] (DEBUG):Saved domainname .google.com. > inet_gethost[29369] (DEBUG):Created worker[6118] with fd 3 > inet_gethost[29369] (DEBUG):Saved domainname .google.com. > inet_gethost[6118] (DEBUG):Worker got request, op = 1, proto = 2, data > = ipv6.google.com. > {error,enotsup} > 3> ets:tab2list(inet_db). > [{socks5_noproxy,[]}, > {res_recurse,1}, > {res_id,0}, > {hostname,"golem"}, > {res_alt_ns,[]}, > {cache_refresh_interval,3600000}, > {res_inet6,true}, > {socks5_port,1080}, > {socks5_methods,[none]}, > {res_timeout,2000}, > {cache_size,100}, > {res_domain,"mochimedia.net"}, > {res_retry,3}, > {res_ns,[]}, > {res_lookup,[native]}, > {sctp_module,inet_sctp}, > {udp_module,inet_udp}, > {tcp_module,inet_tcp}, > {socks5_server,[]}, > {res_search,["mochimedia.net"]}, > {res_usevc,false}] > 4> ets:tab2list(inet_hosts). > [] > > > matthew@lol:~$ uname -a > Linux lol 2.6.20-16-generic #2 SMP Tue Feb 12 02:11:24 UTC 2008 x86_64 GNU/Linux > > matthew@lol:~$ cat /etc/resolv.conf > search mochimedia.net > nameserver 10.0.1.40 > > matthew@lol:~$ ping6 -c 1 ipv6.google.com > PING ipv6.google.com(2001:4860:0:1001::68) 56 data bytes > 64 bytes from 2001:4860:0:1001::68: icmp_seq=1 ttl=56 time=174 ms > > --- ipv6.google.com ping statistics --- > 1 packets transmitted, 1 received, 0% packet loss, time 0ms > rtt min/avg/max/mdev = 174.967/174.967/174.967/0.000 ms > > matthew@lol:~$ echo '{inet6, true}.' > inetrc > > matthew@lol:~$ erl -kernel inetrc '"./inetrc"' > Erlang (BEAM) emulator version 5.6.1 [source] [64-bit] [smp:4] > [async-threads:0] [hipe] [kernel-poll:false] > > Eshell V5.6.1 (abort with ^G) > 1> inet_gethost_native:control({debug_level,4}). > inet_gethost[8266] (DEBUG):debug_level = 4 > ok > 2> inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > inet_gethost[8266] (DEBUG):Saved domainname .google.com. > inet_gethost[8266] (DEBUG):Created worker[8268] with fd 3 > inet_gethost[8266] (DEBUG):Saved domainname .google.com. > inet_gethost[8268] (DEBUG):Worker got request, op = 1, proto = 2, data > = ipv6.google.com. > {error,enotsup} > 3> ets:tab2list(inet_db). > [{socks5_noproxy,[]}, > {res_recurse,1}, > {res_id,0}, > {hostname,"lol"}, > {res_alt_ns,[]}, > {cache_refresh_interval,3600000}, > {res_inet6,true}, > {socks5_port,1080}, > {socks5_methods,[none]}, > {res_timeout,2000}, > {cache_size,100}, > {res_domain,"mochimedia.net"}, > {res_retry,3}, > {res_ns,[]}, > {res_lookup,[native]}, > {sctp_module,inet_sctp}, > {udp_module,inet_udp}, > {tcp_module,inet_tcp}, > {socks5_server,[]}, > {res_search,["mochimedia.net"]}, > {res_usevc,false}] > 4> ets:tab2list(inet_hosts). > [] > _______________________________________________ > erlang-questions mailing list > erlang-questions@... > http://www.erlang.org/mailman/listinfo/erlang-questions -- / Raimo Niskanen, Erlang/OTP, Ericsson AB _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?On Wed, Apr 9, 2008 at 2:04 AM, Raimo Niskanen
<raimo+erlang-questions@...> wrote: > That it does not work on new Linuxes is a known issue. > Linux took another path than Solaris and removed the > IPv6 resolver functions inet_gethost_native uses. > And that is something that has been on our todo > list for a long time now. But since no paying customer > needs it it remains a not high enough priority. Is there any technical argument for using getipnodebyname in favor of getaddrinfo? Would a patch to inet_gethost to use the latter instead be accepted? > So what is the problem with your MacOS X installation is > what puzzels me. Okay, I'll send a report tomorrow from OS X when I have a chance. _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : : Broken ipv6 behavior?On Wed, Apr 09, 2008 at 02:21:37AM -0700, Matthew Dempsky wrote:
> On Wed, Apr 9, 2008 at 2:04 AM, Raimo Niskanen > <raimo+erlang-questions@...> wrote: > > That it does not work on new Linuxes is a known issue. > > Linux took another path than Solaris and removed the > > IPv6 resolver functions inet_gethost_native uses. > > And that is something that has been on our todo > > list for a long time now. But since no paying customer > > needs it it remains a not high enough priority. > > Is there any technical argument for using getipnodebyname in favor of > getaddrinfo? Would a patch to inet_gethost to use the latter instead > be accepted? If I recall correctly we already got a patch for that, but it broke some test cases. I think there were problems with how to find alias names for the generated hostent structs that was not supported with getaddrinfo. So there were things to consider... A new patch would be nice, or to get the old again. Otherwise I would have to find the old by myself. > > > So what is the problem with your MacOS X installation is > > what puzzels me. > > Okay, I'll send a report tomorrow from OS X when I have a chance. > _______________________________________________ > erlang-questions mailing list > erlang-questions@... > http://www.erlang.org/mailman/listinfo/erlang-questions -- / Raimo Niskanen, Erlang/OTP, Ericsson AB _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?On Wed, Apr 09, 2008 at 11:04:11AM +0200, Raimo Niskanen wrote:
> > These functions seem to work on a MacOS X Leopard box > in our lab, there I get: > inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > inet_gethost[63317] (DEBUG):Created worker[63418] with fd 3 > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > inet_gethost[63418] (DEBUG):Worker got request, op = 1, proto = 2, data = ipv6.google.com. > {error,notfound} > > Not strange since we do not have working IPv6 here at work. > Is this only {error,notfound} when you use an {inet6, true} configuration? There should be no problem looking up AAAA DNS records over IPv4: $ dig -4 aaaa ipv6.google.com ... ipv6.google.com. 9981 IN CNAME ipv6.l.google.com ipv6.l.google.com. 201 IN AAAA 2001:4860:0:1001::68 ... ;; SERVER: 213.133.100.100#53(213.133.100.100) ... I only run Linux, so I can't test it myself - but I am interested. Regards Rory _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?On Wed, Apr 9, 2008 at 3:26 AM, Rory Byrne <rory@...> wrote:
> On Wed, Apr 09, 2008 at 11:04:11AM +0200, Raimo Niskanen wrote: > > > > These functions seem to work on a MacOS X Leopard box > > in our lab, there I get: > > inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > > inet_gethost[63317] (DEBUG):Created worker[63418] with fd 3 > > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > > inet_gethost[63418] (DEBUG):Worker got request, op = 1, proto = 2, data = ipv6.google.com. > > {error,notfound} > > > > Not strange since we do not have working IPv6 here at work. > > > > Is this only {error,notfound} when you use an {inet6, true} > configuration? There should be no problem looking up AAAA > DNS records over IPv4: Testing at home with OS X (IPv6 link-local access only), I get {error,notfound} with or without {inet6, true}. ipv6.google.com's AAAA records still resolve fine with dig/host/etc. _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?>
> That it does not work on new Linuxes is a known issue. > Linux took another path than Solaris and removed the > IPv6 resolver functions inet_gethost_native uses. > And that is something that has been on our todo > list for a long time now. But since no paying customer Please !!!! > > needs it it remains a not high enough priority. > Please again! I really do not think that it has anything to do with the problem and how the problem will be solved. /Tony _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?On Wed, Apr 9, 2008 at 6:50 AM, Tony Rogvall <tony@...> wrote:
> > > > That it does not work on new Linuxes is a known issue. > > Linux took another path than Solaris and removed the > > IPv6 resolver functions inet_gethost_native uses. > > And that is something that has been on our todo > > list for a long time now. But since no paying customer Doesn't this put us Linux users in a bind since AFAIK we no longer can purchase Erlang/OTP support licenses. > > > > needs it it remains a not high enough priority. > > What is needed to convince the OTP team that is is high enough. Maybe as a Linux community we could come together to make it happen. Thanks, t _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : : Broken ipv6 behavior?Raimo Niskanen wrote:
> On Wed, Apr 09, 2008 at 02:21:37AM -0700, Matthew Dempsky wrote: >> On Wed, Apr 9, 2008 at 2:04 AM, Raimo Niskanen >> <raimo+erlang-questions@...> wrote: >>> That it does not work on new Linuxes is a known issue. >>> Linux took another path than Solaris and removed the >>> IPv6 resolver functions inet_gethost_native uses. >>> And that is something that has been on our todo >>> list for a long time now. But since no paying customer >>> needs it it remains a not high enough priority. >> Is there any technical argument for using getipnodebyname in favor of >> getaddrinfo? Would a patch to inet_gethost to use the latter instead >> be accepted? > > If I recall correctly we already got a patch for that, > but it broke some test cases. I think there were > problems with how to find alias names for the generated > hostent structs that was not supported with > getaddrinfo. So there were things to consider... > > A new patch would be nice, or to get the old > again. Otherwise I would have to find the old > by myself. Hörnquist-Åstrand) I was the one who sent you the getaddrinfo patch, in private e-mail on 2005-01-13 (so I would actually object to saying it is a problem with "new Linuxes" - a Linux from 2005 isn't exactly new in my book, just like Erlang R10B-3 isn't even close to being a new release of Erlang). I attached the patch again, but yes - it broke some of your test cases. From what I can recall the problem was with the h_aliases in hostent structs. When you used getipnodebyname() on Solaris, you would get aliases from your NIS database (yuck!) that you would not get using getaddrinfo(). /Fredrik --- otp_src_R10B-2.orig/erts/etc/common/inet_gethost.c 2003-07-07 14:07:55.000000000 +0200 +++ otp_src_R10B-2/erts/etc/common/inet_gethost.c 2005-01-03 15:08:11.000000000 +0100 @@ -39,6 +39,8 @@ #include <errno.h> #include <signal.h> +#define HAVE_GETADDRINFO 1 + #ifdef HAVE_SYS_TIME_H #include <sys/time.h> #else @@ -238,13 +240,22 @@ static int get_int32(AddrByte *buff); static void put_int32(AddrByte *buff, int value); static int create_worker(Worker *pworker, int save_que); -static int map_netdb_error(int netdb_code); +#ifdef HAVE_GETADDRINFO +static int map_netdb_error_ai(int netdb_code); +#else +static int map_netdb_error_he(int netdb_code); +#endif static char *errcode_to_string(int errcode); static size_t build_error_reply(SerialType serial, int errnum, AddrByte **preply, size_t *preply_size); +#ifdef HAVE_GETADDRINFO +static size_t build_reply_ai(SerialType serial, int, struct addrinfo *, + AddrByte **preply, size_t *preply_size); +#else static size_t build_reply(SerialType serial, struct hostent *he, AddrByte **preply, size_t *preply_size); +#endif static int read_request(AddrByte **buff, size_t *buff_size); static OpType get_op(AddrByte *buff); static AddrByte *get_op_addr(AddrByte *buff); @@ -1465,7 +1476,9 @@ static int worker_loop(void) #endif { +#ifndef HAVE_GETADDRINFO struct hostent *he; +#endif AddrByte *req = NULL; size_t req_size = 0; int this_size; @@ -1523,13 +1536,61 @@ free_he = 0; switch (op) { case OP_GETHOSTBYNAME: + { +#ifdef HAVE_GETADDRINFO + struct addrinfo hints, *res = NULL; + int addrlen; + + DEBUGF(10, ("getaddrinfo: %s.", data)); + + error_num = 0; + hints.ai_flags = AI_CANONNAME; + hints.ai_protocol = 0; + hints.ai_socktype = SOCK_STREAM; + hints.ai_addrlen = 0; + hints.ai_canonname = NULL; + hints.ai_addr = NULL; + hints.ai_next = NULL; + switch (proto) { + case PROTO_IPV4: + hints.ai_family = PF_INET; + addrlen = 4; + break; +#ifdef PF_INET6 + case PROTO_IPV6: + hints.ai_family = PF_INET6; + addrlen = 16; + break; +#endif + default: + addrlen = 0; + error_num = ERRCODE_NOTSUP; + break; + } + if (error_num == 0) { + error_num = getaddrinfo(data, NULL, &hints, &res); + if (error_num) + error_num = map_netdb_error_ai(error_num); + } + DEBUGF(10, ("getaddrinfo returns: %d.", error_num)); + if (error_num) { + data_size = build_error_reply(serial, error_num, + &reply, &reply_size); + } else { + data_size = build_reply_ai(serial, addrlen, res, + &reply, &reply_size); + } + if (res) + freeaddrinfo(res); + break; +#else /* HAVE_GETADDRINFO */ if (proto != PROTO_IPV4) { #if defined(HAVE_GETIPNODEBYNAME) && !defined(WIN32) /* IP V6 support */ if (proto == PROTO_IPV6) { he = getipnodebyname(data, AF_INET6, AI_DEFAULT, &error_num); free_he = 1; - error_num = map_netdb_error(error_num); + error_num = map_netdb_error_he(error_num); } else { /* Not supported... */ he = NULL; @@ -1545,7 +1606,7 @@ he = gethostbyname(data); DEBUGF(4,("gethostbyname(%s) gave %s",data, (he) ? "success" : "error")); - error_num = (he) ? 0 : map_netdb_error(h_errno); + error_num = (he) ? 0 : map_netdb_error_he(h_errno); } if (!he) { data_size = build_error_reply(serial, error_num, @@ -1558,8 +1619,85 @@ } #endif } +#endif /* HAVE_GETADDRINFO */ break; + } case OP_GETHOSTBYADDR: + { +#ifdef HAVE_GETADDRINFO + struct sockaddr *sa = NULL; + char name[NI_MAXHOST]; + socklen_t salen; + int addrlen; + + error_num = 0; + switch (proto) { + case PROTO_IPV4: { + struct sockaddr_in *sin; + addrlen = 4; + salen = sizeof(*sin); + sin = malloc(salen); + if (sin == NULL) { + error_num = ERRCODE_NETDB_INTERNAL; + break; + } +#ifndef NO_SA_LEN + sin->sin_len = salen; +#endif + sin->sin_family = AF_INET; + sin->sin_port = 0; + memcpy(&sin->sin_addr, data, addrlen); + sa = (struct sockaddr *)sin; + break; + } +#ifdef PF_INET6 + case PROTO_IPV6: { + struct sockaddr_in6 *sin; + addrlen = 16; + salen = sizeof(*sin); + sin = malloc(salen); + if (sin == NULL) { + error_num = ERRCODE_NETDB_INTERNAL; + break; + } +#ifndef NO_SA_LEN + sin->sin6_len = salen; +#endif + sin->sin6_family = AF_INET6; + sin->sin6_port = 0; + memcpy(&sin->sin6_addr, data, addrlen); + sa = (struct sockaddr *)sin; + break; + } +#endif + default: + error_num = ERRCODE_NOTSUP; + break; + } + if (error_num == 0) { + error_num = getnameinfo(sa, salen, name, sizeof(name), + NULL, 0, NI_NAMEREQD); + DEBUGF(50,("getnameinfo %d.", error_num)); + if (error_num) + error_num = map_netdb_error_ai(error_num); + } + if (error_num) + data_size = build_error_reply(serial, error_num, + &reply, &reply_size); + else { + struct addrinfo res; + memset(&res, 0, sizeof(res)); + DEBUGF(50,("getnameinfo %s.", name)); + res.ai_canonname = name; + res.ai_addr = sa; + res.ai_next = NULL; + data_size = build_reply_ai(serial, addrlen, &res, + &reply, &reply_size); + } + if (sa) + free(sa); + break; +#else /* HAVE_GETADDRINFO */ if (proto != PROTO_IPV4) { #if defined(HAVE_GETIPNODEBYADDR) && !defined(WIN32) /* IP V6 support */ if (proto == PROTO_IPV6) { @@ -1567,7 +1705,7 @@ memcpy(ia.s6_addr, data, 16); he = getipnodebyaddr(&ia, 16, AF_INET6, &error_num); free_he = 1; - error_num = map_netdb_error(error_num); + error_num = map_netdb_error_he(error_num); } else { /* Not supported... */ he = NULL; @@ -1582,7 +1720,7 @@ struct in_addr ia; memcpy(&ia.s_addr, data, 4); /* Alignment required... */ he = gethostbyaddr((const char *) &ia, 4, AF_INET); - error_num = map_netdb_error(h_errno); + error_num = map_netdb_error_he(h_errno); } if (!he) { data_size = build_error_reply(serial, error_num, @@ -1596,6 +1734,8 @@ #endif } break; +#endif /* HAVE_GETADDRINFO */ + } default: data_size = build_error_reply(serial, ERRCODE_NOTSUP, &reply, &reply_size); @@ -1628,7 +1768,39 @@ #endif } -static int map_netdb_error(int netdb_code) +#ifdef HAVE_GETADDRINFO +static int map_netdb_error_ai(int netdb_code) +{ + switch(netdb_code) { +#ifdef EAI_ADDRFAMILY + case EAI_ADDRFAMILY: + return ERRCODE_NETDB_INTERNAL; +#endif + case EAI_AGAIN: + return ERRCODE_TRY_AGAIN; + case EAI_BADFLAGS: + return ERRCODE_NETDB_INTERNAL; + case EAI_FAIL: + return ERRCODE_HOST_NOT_FOUND; + case EAI_FAMILY: + return ERRCODE_NETDB_INTERNAL; + case EAI_MEMORY: + return ERRCODE_NETDB_INTERNAL; +#if defined(EAI_NODATA) && EAI_NODATA != EAI_NONAME + case EAI_NODATA: + return ERRCODE_HOST_NOT_FOUND; +#endif + case EAI_NONAME: + return ERRCODE_HOST_NOT_FOUND; + case EAI_SERVICE: + return ERRCODE_NETDB_INTERNAL; + case EAI_SOCKTYPE: + return ERRCODE_NETDB_INTERNAL; + default: + return ERRCODE_NETDB_INTERNAL; + } +#else /* HAVE_GETADDRINFO */ +static int map_netdb_error_he(int netdb_code) { switch (netdb_code) { #ifdef HOST_NOT_FOUND @@ -1657,6 +1829,7 @@ default: return ERRCODE_NETDB_INTERNAL; } +#endif /* HAVE_GETADDRINFO */ } static char *errcode_to_string(int errcode) @@ -1712,7 +1885,79 @@ return need; } +#ifdef HAVE_GETADDRINFO + +static size_t build_reply_ai(SerialType serial, int addrlen, + struct addrinfo *res0, + AddrByte **preply, size_t *preply_size) +{ + struct addrinfo *res; + int num_strings; + int num_addresses; + AddrByte *ptr; + int need; + + num_addresses = 0; + num_strings = 0; + need = PACKET_BYTES + + 4 /* Serial */ + 1 /* addrlen */ + + 4 /* Naddr */ + 4 /* Nnames */; + + for (res = res0; res != NULL; res = res->ai_next) { + if (res->ai_addr) { + num_addresses++; + need += addrlen; + } + if (res->ai_canonname) { + num_strings++; + need += strlen(res->ai_canonname) + 1; + } + } + + if (*preply_size < need) { + if (*preply_size == 0) { + *preply = ALLOC((*preply_size = need)); + } else { + *preply = REALLOC(*preply, + (*preply_size = need)); + } + } + ptr = *preply; + PUT_PACKET_BYTES(ptr,need - PACKET_BYTES); + ptr += PACKET_BYTES; + put_int32(ptr,serial); + ptr +=4; + *ptr++ = (AddrByte) addrlen; /* 4 or 16 */ + put_int32(ptr, num_addresses); + ptr += 4; + for (res = res0; res != NULL && num_addresses; res = res->ai_next) { + if (res->ai_addr == NULL) + continue; + if (addrlen == 4) + memcpy(ptr, &((struct sockaddr_in *)res->ai_addr)->sin_addr, addrlen); +#ifdef PF_INET6 + else if (addrlen == 16) + memcpy(ptr, &((struct sockaddr_in6 *)res->ai_addr)->sin6_addr, addrlen); +#endif + else + memcpy(ptr, res->ai_addr->sa_data, addrlen); + ptr += addrlen; + num_addresses--; + } + put_int32(ptr, num_strings); + ptr += 4; + for (res = res0; res != NULL && num_strings; res = res->ai_next) { + if (res->ai_canonname == NULL) + continue; + strcpy(ptr, res->ai_canonname); + ptr += strlen(res->ai_canonname) + 1; + num_strings--; + } + return need; +} + +#else /* !HAVE_GETADDRINFO */ static size_t build_reply(SerialType serial, struct hostent *he, AddrByte **preply, size_t *preply_size) @@ -1773,6 +2018,8 @@ return need; } +#endif /* HAVE_GETADDRINFO */ + /* * Encode/decode/read/write */ _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?--- Raimo Niskanen <raimo+erlang-questions@...> wrote: > And that is something that has been on our todo > list for a long time now. But since no paying > customer > needs it it remains a not high enough priority. Whenever I see this sort of thing, which is basically overload, I think: instead of waiting for <feature x>, can't the rest of us help somehow? (Perhaps back to that git repository, thus? But writing and running lots of test suites on different platforms would be needed too.) Best, Thomas __________________________________________________ Do You Yahoo!? Tired of spam? Yahoo! Mail has the best spam protection around http://mail.yahoo.com _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : Broken ipv6 behavior?On Wed, Apr 09, 2008 at 03:41:40AM -0700, Matthew Dempsky wrote:
> On Wed, Apr 9, 2008 at 3:26 AM, Rory Byrne <rory@...> wrote: > > On Wed, Apr 09, 2008 at 11:04:11AM +0200, Raimo Niskanen wrote: > > > > > > These functions seem to work on a MacOS X Leopard box > > > in our lab, there I get: > > > inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > > > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > > > inet_gethost[63317] (DEBUG):Created worker[63418] with fd 3 > > > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > > > inet_gethost[63418] (DEBUG):Worker got request, op = 1, proto = 2, data = ipv6.google.com. > > > {error,notfound} > > > > > > Not strange since we do not have working IPv6 here at work. > > > > > > > Is this only {error,notfound} when you use an {inet6, true} > > configuration? There should be no problem looking up AAAA > > DNS records over IPv4: > > Testing at home with OS X (IPv6 link-local access only), I get > {error,notfound} with or without {inet6, true}. > > ipv6.google.com's AAAA records still resolve fine with dig/host/etc. > Might be a problem. I'm guessing that most people are going to expect to resolve all their DNS queries over IPv4 for many years to come. I would have assumed the following: . Using {inet6, false} should mean: only query IPv4 DNS servers. It shouldn't effect what you can query, so you should be able to get AAAA records without a problem. . Using {inet6, true} should mean: use an IPv6 DNS server to resolve queries if one is configured. Failing that, use any IPv4 DNS servers that are configured. Again, the content of your query should not be effected. Not saying that this is the way it should be, just that this would have been my initial assumption. Anyway, it appears that the problem is on the link between erlang and the local resolver. However, if your planning on doing any elaborate debugging on this stuff, it might be worth keeping in mind that none of google's DNS servers have IPv6 addresses, so all queries to them will ultimately go over IPv4. The DNS servers for kame.net do have IPv6 addresses (eg: dig -6 aaaa www.kame.net @orange.kame.net). Good luck, Rory _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : : Broken ipv6 behavior?On Wed, Apr 09, 2008 at 05:05:56PM +0200, Rory Byrne wrote:
> On Wed, Apr 09, 2008 at 03:41:40AM -0700, Matthew Dempsky wrote: > > On Wed, Apr 9, 2008 at 3:26 AM, Rory Byrne <rory@...> wrote: > > > On Wed, Apr 09, 2008 at 11:04:11AM +0200, Raimo Niskanen wrote: > > > > > > > > These functions seem to work on a MacOS X Leopard box > > > > in our lab, there I get: > > > > inet_gethost_native:gethostbyname("ipv6.google.com", inet6). > > > > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > > > > inet_gethost[63317] (DEBUG):Created worker[63418] with fd 3 > > > > inet_gethost[63317] (DEBUG):Saved domainname .google.com. > > > > inet_gethost[63418] (DEBUG):Worker got request, op = 1, proto = 2, data = ipv6.google.com. > > > > {error,notfound} > > > > > > > > Not strange since we do not have working IPv6 here at work. > > > > > > > > > > Is this only {error,notfound} when you use an {inet6, true} > > > configuration? There should be no problem looking up AAAA > > > DNS records over IPv4: > > > > Testing at home with OS X (IPv6 link-local access only), I get > > {error,notfound} with or without {inet6, true}. > > > > ipv6.google.com's AAAA records still resolve fine with dig/host/etc. > > > > Might be a problem. I'm guessing that most people are > going to expect to resolve all their DNS queries over > IPv4 for many years to come. I would have assumed the > following: > > . Using {inet6, false} should mean: only query IPv4 DNS > servers. It shouldn't effect what you can query, so you > should be able to get AAAA records without a problem. > > . Using {inet6, true} should mean: use an IPv6 DNS server > to resolve queries if one is configured. Failing that, > use any IPv4 DNS servers that are configured. Again, > the content of your query should not be effected. > > Not saying that this is the way it should be, just that > this would have been my initial assumption. > > Anyway, it appears that the problem is on the link > between erlang and the local resolver. However, if Or the local resolver configuration. > your planning on doing any elaborate debugging on > this stuff, it might be worth keeping in mind that > none of google's DNS servers have IPv6 addresses, > so all queries to them will ultimately go over IPv4. > The DNS servers for kame.net do have IPv6 addresses > (eg: dig -6 aaaa www.kame.net @orange.kame.net). In that case I can report that: 1> inet:gethostbyname("orange.kame.net", inet6). {ok,{hostent,"orange.kame.net",[],inet6,16, [{0,0,0,0,0,65535,52146,36290}]}} works on: Darwin hostname 9.2.2 Darwin Kernel Version 9.2.2: Tue Mar 4 21:17:34 PST 2008; root:xnu-1228.4.31~1/RELEASE_I386 i386 Which should be MacOS X Leopard > > Good luck, > > Rory > > _______________________________________________ > erlang-questions mailing list > erlang-questions@... > http://www.erlang.org/mailman/listinfo/erlang-questions -- / Raimo Niskanen, Erlang/OTP, Ericsson AB _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
|
|
Re: : : Broken ipv6 behavior?On Wed, Apr 09, 2008 at 06:16:13AM -0700, Thomas Lindgren wrote:
> > --- Raimo Niskanen > <raimo+erlang-questions@...> wrote: > > > And that is something that has been on our todo > > list for a long time now. But since no paying > > customer > > needs it it remains a not high enough priority. > > Whenever I see this sort of thing, which is basically > overload, I think: instead of waiting for <feature x>, > can't the rest of us help somehow? > > (Perhaps back to that git repository, thus? But > writing and running lots of test suites on different > platforms would be needed too.) > In this particular case there has to be an investigation in if the test suites are wrong or the implementation, or the test site (DNS vs NIS). Would it be acceptable that there are no hostent aliases on getaddrinfo hosts but there are on getipnodebyname hosts? Or since there is alias information in DNS, should the inet_gethost_native code be able to find alias information also on getaddrinfo hosts? And how? EEP? > Best, > Thomas > > > __________________________________________________ > Do You Yahoo!? > Tired of spam? Yahoo! Mail has the best spam protection around > http://mail.yahoo.com > _______________________________________________ > erlang-questions mailing list > erlang-questions@... > http://www.erlang.org/mailman/listinfo/erlang-questions -- / Raimo Niskanen, Erlang/OTP, Ericsson AB _______________________________________________ erlang-questions mailing list erlang-questions@... http://www.erlang.org/mailman/listinfo/erlang-questions |
| < Prev | 1 - 2 | Next > |
| Free embeddable forum powered by Nabble | Forum Help |