#12186 closed bug (duplicate)
Webpositive can browse only haiku sites
Reported by: | lalit | Owned by: | nobody |
---|---|---|---|
Priority: | normal | Milestone: | |
Component: | Network & Internet | Version: | |
Keywords: | Cc: | ||
Blocked By: | #8293 | Blocking: | |
Platform: | All |
Description
In the recent builds I can browse only haiku sites. Can't browse google, youtube etc.
Change History (9)
comment:1 by , 9 years ago
Blocked By: | 8293 added |
---|---|
Resolution: | → duplicate |
Status: | new → closed |
comment:2 by , 9 years ago
Depending on the situation, this might be unrelated to IPv6. There was another problem with thread-safety of getaddrinfo(), fixed in hrev49371. You could try again with that version and see if it fixes your problem.
comment:3 by , 9 years ago
hrev49371, same problem.
Also:
telnet google.com 80 google.com: Temporary failure in name resolution
with 'add-ons/kernel/network/protocols/ipv6' blacklisted I'm getting:
telnet google.com 80 Trying (null)... telnet: socket: Address family not supported by protocol family
comment:5 by , 9 years ago
Not really. The IPv6 problem would result in telnet trying "(null)", timing out, and then trying the IPv4 address and connecting.
These two errors ("Temporary failure in name resolution") and trying "(null)" anyway even if ipv6 is blacklisted are new problems. Blacklisting the ipv6 driver should be enough to disable DNS resolution of IPv6 addresses (this used to work with the libbind code, not sure with the netresolv one).
comment:6 by , 9 years ago
Still not working in hrev49371. It was working before, just stopped working in the recent builds. Qupzilla browser working fine.
comment:7 by , 9 years ago
@PulkoMandy, Diver
The only strange thing here is the "temporary failure in name resolution". Unfortunately I can't reproduce that one. When I try this, I get telnet first trying (null), then correctly saying that the network is unreachable and then it tries with the IPv4 address. When I have the IPv6 module blacklisted, I get the same output as Diver.
Blacklisting the ipv6 driver should be enough to disable DNS resolution of IPv6 addresses
Yes, it should, but that's broken in netresolv (i.e. it does not correctly process the AI_ADDRCONFIG flag), and that's what is tracked in #8293. The bug surfaces now because you had enabled IPv6 in netresolv (via preprocessor define). As mentioned on the mailing list, switching to FreeBSD's getaddrinfo(), which correctly implements AI_ADDRCONFIG, seems to be a good thing to look into.
(And the reason telnet shows "(null)" instead of a proper IPv6 address is simply that we compile telnet without IPv6 support.)
comment:8 by , 9 years ago
Tried again and it seems that I only get "temporary failure in name resolution" right after boot. Restarting net_server fixes it, see ticket:12156#comment:38
comment:9 by , 9 years ago
It's more subtle than that. As mentionned in #8293, blacklisting the IPv6 module used to work when using libbind, because AI_ADDRCONFIG checked for its availability (but not for an actually configured interface). So there is one more regression here. So there is a regression.
The fix, however, is the same: switch to a working implementation of getaddrinfo such as FreeBSD one.
You cannot browse sites that return IPv6 addresses.