diff options
author | Daniel Sommermann <[email protected]> | 2016-05-20 15:47:16 -0700 |
---|---|---|
committer | Daniel Sommermann <[email protected]> | 2016-05-20 15:58:41 -0700 |
commit | 5d7dcfc2e0de7e93b29d01f07a2f970720d62f9d (patch) | |
tree | a3ff59eac8c0745206f7ccde3c987148b6a72997 | |
parent | 2098d573b097566d598ded1444625439ee6c0ae3 (diff) | |
download | otp-5d7dcfc2e0de7e93b29d01f07a2f970720d62f9d.tar.gz otp-5d7dcfc2e0de7e93b29d01f07a2f970720d62f9d.tar.bz2 otp-5d7dcfc2e0de7e93b29d01f07a2f970720d62f9d.zip |
Make inet:gethostbyname respect resolver option `inet6`
This makes the implementation text of inet:gethostbyname/1 identical to
that of inet_res:gethostbyname/1. I also copied over the doc note about
this resolver option.
-rw-r--r-- | lib/kernel/doc/src/inet.xml | 7 | ||||
-rw-r--r-- | lib/kernel/src/inet.erl | 7 |
2 files changed, 11 insertions, 3 deletions
diff --git a/lib/kernel/doc/src/inet.xml b/lib/kernel/doc/src/inet.xml index bca04aa244..5ff167bcb3 100644 --- a/lib/kernel/doc/src/inet.xml +++ b/lib/kernel/doc/src/inet.xml @@ -11,7 +11,7 @@ Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at - + http://www.apache.org/licenses/LICENSE-2.0 Unless required by applicable law or agreed to in writing, software @@ -207,6 +207,10 @@ fe80::204:acff:fe17:bf38 <desc> <p>Returns a <c>hostent</c> record for the host with the specified hostname.</p> + <p>If resolver option <c>inet6</c> is <c>true</c>, + an IPv6 address is looked up. If that fails, + the IPv4 address is looked up and returned on + IPv6-mapped IPv4 format.</p> </desc> </func> @@ -1267,4 +1271,3 @@ inet:setopts(Sock,[{raw,6,8,<<30:32/native>>}]),]]></code> </list> </section> </erlref> - diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl index c1ae99ea24..713a9cf725 100644 --- a/lib/kernel/src/inet.erl +++ b/lib/kernel/src/inet.erl @@ -439,7 +439,12 @@ getstat(Socket,What) -> Hostent :: hostent(). gethostbyname(Name) -> - gethostbyname_tm(Name, inet, false). + case inet_db:res_option(inet6) of + true -> + gethostbyname_tm(Name, inet6, false); + false -> + gethostbyname_tm(Name, inet, false) + end. -spec gethostbyname(Hostname, Family) -> {ok, Hostent} | {error, posix()} when |