diff options
author | Raimo Niskanen <[email protected]> | 2016-09-15 15:20:32 +0200 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2016-09-15 15:20:32 +0200 |
commit | 996a0630f2d20557c2f981106a4c316ac6a360ff (patch) | |
tree | a0f88ab9716ee08cb2417151668381406c1d3c64 /erts/preloaded | |
parent | fde238fb52133a6c7a2a3f2a2e16f1c1bef62394 (diff) | |
parent | 8d5a41b9eeae54d1135c570878fecc2ad3ad1d8e (diff) | |
download | otp-996a0630f2d20557c2f981106a4c316ac6a360ff.tar.gz otp-996a0630f2d20557c2f981106a4c316ac6a360ff.tar.bz2 otp-996a0630f2d20557c2f981106a4c316ac6a360ff.zip |
Merge branch 'raimo/diffserv-socket-option/OTP-13582' into maint
* raimo/diffserv-socket-option/OTP-13582:
Tune 'tclass' semantics
Implement IPV6_TCLASS
Diffstat (limited to 'erts/preloaded')
-rw-r--r-- | erts/preloaded/ebin/prim_inet.beam | bin | 76268 -> 76544 bytes | |||
-rw-r--r-- | erts/preloaded/src/prim_inet.erl | 15 |
2 files changed, 14 insertions, 1 deletions
diff --git a/erts/preloaded/ebin/prim_inet.beam b/erts/preloaded/ebin/prim_inet.beam Binary files differindex ae4861c336..1a573ce297 100644 --- a/erts/preloaded/ebin/prim_inet.beam +++ b/erts/preloaded/ebin/prim_inet.beam diff --git a/erts/preloaded/src/prim_inet.erl b/erts/preloaded/src/prim_inet.erl index bcf16402b0..61f727e8a4 100644 --- a/erts/preloaded/src/prim_inet.erl +++ b/erts/preloaded/src/prim_inet.erl @@ -347,7 +347,17 @@ accept_opts(L, S) -> case getopts(L, [active, nodelay, keepalive, delay_send, priority, tos]) of {ok, Opts} -> case setopts(S, Opts) of - ok -> {ok, S}; + ok -> + case getopts(L, [tclass]) of + {ok, []} -> + {ok, S}; + {ok, TClassOpts} -> + case setopts(S, TClassOpts) of + ok -> + {ok, S}; + Error -> close(S), Error + end + end; Error -> close(S), Error end; Error -> @@ -1196,6 +1206,7 @@ enc_opt(sndbuf) -> ?INET_OPT_SNDBUF; enc_opt(recbuf) -> ?INET_OPT_RCVBUF; enc_opt(priority) -> ?INET_OPT_PRIORITY; enc_opt(tos) -> ?INET_OPT_TOS; +enc_opt(tclass) -> ?INET_OPT_TCLASS; enc_opt(nodelay) -> ?TCP_OPT_NODELAY; enc_opt(multicast_if) -> ?UDP_OPT_MULTICAST_IF; enc_opt(multicast_ttl) -> ?UDP_OPT_MULTICAST_TTL; @@ -1255,6 +1266,7 @@ dec_opt(?INET_OPT_SNDBUF) -> sndbuf; dec_opt(?INET_OPT_RCVBUF) -> recbuf; dec_opt(?INET_OPT_PRIORITY) -> priority; dec_opt(?INET_OPT_TOS) -> tos; +dec_opt(?INET_OPT_TCLASS) -> tclass; dec_opt(?TCP_OPT_NODELAY) -> nodelay; dec_opt(?UDP_OPT_MULTICAST_IF) -> multicast_if; dec_opt(?UDP_OPT_MULTICAST_TTL) -> multicast_ttl; @@ -1329,6 +1341,7 @@ type_opt_1(sndbuf) -> int; type_opt_1(recbuf) -> int; type_opt_1(priority) -> int; type_opt_1(tos) -> int; +type_opt_1(tclass) -> int; type_opt_1(nodelay) -> bool; type_opt_1(ipv6_v6only) -> bool; %% multicast |