aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src
diff options
context:
space:
mode:
authorFredrik Gustafsson <[email protected]>2013-08-05 11:15:37 +0200
committerFredrik Gustafsson <[email protected]>2013-08-05 11:15:37 +0200
commit0fad6449c7ec48aa7454880b5a1caf0f2580b33f (patch)
tree8ad03a5af4cc92d9cab110dfa5facda474d0bb96 /lib/kernel/src
parent08c4a46e0be4017bbcee596eb4858d0e16eaaec6 (diff)
parentd8787b43ca5f33b6ec95300c8ce6f06c80886801 (diff)
downloadotp-0fad6449c7ec48aa7454880b5a1caf0f2580b33f.tar.gz
otp-0fad6449c7ec48aa7454880b5a1caf0f2580b33f.tar.bz2
otp-0fad6449c7ec48aa7454880b5a1caf0f2580b33f.zip
Merge branch 'fredrik/inet/clarify_doc_address/OTP-10676' into maint
* fredrik/inet/clarify_doc_address/OTP-10676: kernel: fixed specs to inet:ntoa/1 kernel: changed tests where inet_parse:ntoa/1 was used to inet:parse/1 kernel: added ntoa documentation and exported it in inet.erl kernel: clarified inet:parse_address/1 referrering to old code
Diffstat (limited to 'lib/kernel/src')
-rw-r--r--lib/kernel/src/inet.erl9
-rw-r--r--lib/kernel/src/inet_parse.erl4
2 files changed, 11 insertions, 2 deletions
diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl
index 3ea530a366..5749027acd 100644
--- a/lib/kernel/src/inet.erl
+++ b/lib/kernel/src/inet.erl
@@ -32,7 +32,7 @@
ip/1, stats/0, options/0,
pushf/3, popf/1, close/1, gethostname/0, gethostname/1,
parse_ipv4_address/1, parse_ipv6_address/1, parse_ipv4strict_address/1,
- parse_ipv6strict_address/1, parse_address/1, parse_strict_address/1]).
+ parse_ipv6strict_address/1, parse_address/1, parse_strict_address/1, ntoa/1]).
-export([connect_options/2, listen_options/2, udp_options/2, sctp_options/2]).
@@ -529,6 +529,13 @@ getservbyname(Name, Protocol) when is_atom(Name) ->
Error -> Error
end.
+-spec ntoa(IpAddress) ->
+ {ok, Address} | {error, einval} when
+ Address :: string(),
+ IpAddress :: ip_address().
+ntoa(Addr) ->
+ inet_parse:ntoa(Addr).
+
-spec parse_ipv4_address(Address) ->
{ok, IPv4Address} | {error, einval} when
Address :: string(),
diff --git a/lib/kernel/src/inet_parse.erl b/lib/kernel/src/inet_parse.erl
index 619c78a6ca..98bd8d386c 100644
--- a/lib/kernel/src/inet_parse.erl
+++ b/lib/kernel/src/inet_parse.erl
@@ -722,7 +722,9 @@ ntoa({0,0,0,0,0,16#ffff,A,B}) ->
"::FFFF:" ++ dig_to_dec(A) ++ "." ++ dig_to_dec(B);
ntoa({_,_,_,_,_,_,_,_}=T) ->
%% Find longest sequence of zeros, at least 2, to replace with "::"
- ntoa(tuple_to_list(T), []).
+ ntoa(tuple_to_list(T), []);
+ntoa(_) ->
+ {error, einval}.
%% Find first double zero
ntoa([], R) ->