cmullaparthi / ibrowse

Erlang HTTP client
Other
516 stars 190 forks source link

Add address family for inet:gethostbyname/2 call #155

Closed nroi closed 7 years ago

nroi commented 7 years ago

I was wondering why ibrowse was unable to complete a get request to an IPv6-only host:

> ibrowse:send_req("http://ipv6.helios.click", [], get).
{error,{conn_failed,{error,nxdomain}}}

Turns out the function is_ipv6_host/1 returns false, although the domain has an AAAA record set. The problem is that it calls inet:gethostbyname/1, which will use IPv6 only if inet_db:res_option(inet6) is set to true. By default, this setting is set to false (see the Erlang repository)

I'm wondering if this is intended behavior, or if it is a bug, because as of now, IPv6 hosts are not resolved correctly if the standard setting is used. If it is a bug, this PR should fix it.

cmullaparthi commented 7 years ago

This is a bug - thanks for fixing it.

dch commented 6 years ago

@cmullaparthi would you mind tagging a new release and uploading it to hex.pm so we can have this fix by default?