summaryrefslogtreecommitdiff
path: root/lib/kernel/src/inet.erl
diff options
context:
space:
mode:
Diffstat (limited to 'lib/kernel/src/inet.erl')
-rw-r--r--lib/kernel/src/inet.erl42
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,