diff options
Diffstat (limited to 'lib/kernel/src/inet.erl')
-rw-r--r-- | lib/kernel/src/inet.erl | 42 |
1 files changed, 35 insertions, 7 deletions
diff --git a/lib/kernel/src/inet.erl b/lib/kernel/src/inet.erl index d836f6b367..780abec149 100644 --- a/lib/kernel/src/inet.erl +++ b/lib/kernel/src/inet.erl @@ -35,8 +35,10 @@ ip/1, is_ipv4_address/1, is_ipv6_address/1, is_ip_address/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_ipv4_address/1, parse_ipv6_address/1, + parse_ipv4strict_address/1, parse_ipv6strict_address/1, + parse_address/1, parse_strict_address/1, + parse_address/2, parse_strict_address/2, ntoa/1, ipv4_mapped_ipv6_address/1]). -export([connect_options/2, listen_options/2, udp_options/2, sctp_options/2]). @@ -912,6 +914,19 @@ parse_ipv6strict_address(Addr) -> parse_address(Addr) -> inet_parse:address(Addr). +-spec parse_address(Address, inet) -> + {ok, IPAddress} | {error, einval} when + Address :: string(), + IPAddress :: ip_address(); + (Address, inet6) -> + {ok, IPv6Address} | {error, einval} when + Address :: string(), + IPv6Address :: ip6_address(). +parse_address(Addr, inet) -> + inet_parse:ipv4_address(Addr); +parse_address(Addr, inet6) -> + inet_parse:ipv6_address(Addr). + -spec parse_strict_address(Address) -> {ok, IPAddress} | {error, einval} when Address :: string(), @@ -919,6 +934,19 @@ parse_address(Addr) -> parse_strict_address(Addr) -> inet_parse:strict_address(Addr). +-spec parse_strict_address(Address, inet) -> + {ok, IPAddress} | {error, einval} when + Address :: string(), + IPAddress :: ip_address(); + (Address, inet6) -> + {ok, IPv6Address} | {error, einval} when + Address :: string(), + IPv6Address :: ip6_address(). +parse_strict_address(Addr, inet) -> + inet_parse:ipv4strict_address(Addr); +parse_strict_address(Addr, inet6) -> + inet_parse:ipv6strict_address(Addr). + -spec ipv4_mapped_ipv6_address(ip_address()) -> ip_address(). ipv4_mapped_ipv6_address({D1,D2,D3,D4}) when (D1 bor D2 bor D3 bor D4) < 256 -> @@ -953,9 +981,9 @@ stats() -> %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% connect_options() -> [debug, - tos, tclass, priority, reuseaddr, keepalive, linger, nodelay, - sndbuf, recbuf, - recvtos, recvtclass, ttl, recvttl, + tos, tclass, priority, reuseaddr, reuseport, reuseport_lb, + exclusiveaddruse, keepalive, + linger, nodelay, sndbuf, recbuf, recvtos, recvtclass, ttl, recvttl, header, active, packet, packet_size, buffer, mode, deliver, line_delimiter, exit_on_close, high_watermark, low_watermark, high_msgq_watermark, low_msgq_watermark, send_timeout, send_timeout_close, delay_send, raw, @@ -1044,8 +1072,8 @@ con_add(Name, Val, #connect_opts{} = R, Opts, AllOpts) -> listen_options() -> [debug, tos, tclass, - priority, reuseaddr, keepalive, linger, sndbuf, recbuf, nodelay, - recvtos, recvtclass, ttl, recvttl, + priority, reuseaddr, reuseport, reuseport_lb, exclusiveaddruse, keepalive, + linger, sndbuf, recbuf, nodelay, recvtos, recvtclass, ttl, recvttl, header, active, packet, buffer, mode, deliver, backlog, ipv6_v6only, exit_on_close, high_watermark, low_watermark, high_msgq_watermark, low_msgq_watermark, send_timeout, send_timeout_close, delay_send, |