diff options
author | Micael Karlberg <[email protected]> | 2018-07-25 14:09:24 +0200 |
---|---|---|
committer | Micael Karlberg <[email protected]> | 2018-09-18 14:50:18 +0200 |
commit | cb8877a5561ac64704337441936b62c8c87f8d13 (patch) | |
tree | f133ddb2c67a6db6608638c67bd585a8146b15f3 /erts/preloaded | |
parent | 673367a0c17349a8b57dfad5dbc349c68417c6a5 (diff) | |
download | otp-cb8877a5561ac64704337441936b62c8c87f8d13.tar.gz otp-cb8877a5561ac64704337441936b62c8c87f8d13.tar.bz2 otp-cb8877a5561ac64704337441936b62c8c87f8d13.zip |
[socket-nif] Add support for socket (level ip) option retopts
Added support for ip level socket option RETOPTS.
OTP-14831
Diffstat (limited to 'erts/preloaded')
-rw-r--r-- | erts/preloaded/ebin/socket.beam | bin | 59092 -> 59148 bytes | |||
-rw-r--r-- | erts/preloaded/src/socket.erl | 9 |
2 files changed, 6 insertions, 3 deletions
diff --git a/erts/preloaded/ebin/socket.beam b/erts/preloaded/ebin/socket.beam Binary files differindex 960a465fb6..93b224391b 100644 --- a/erts/preloaded/ebin/socket.beam +++ b/erts/preloaded/ebin/socket.beam diff --git a/erts/preloaded/src/socket.erl b/erts/preloaded/src/socket.erl index c7589cbd48..e7438cd856 100644 --- a/erts/preloaded/src/socket.erl +++ b/erts/preloaded/src/socket.erl @@ -640,7 +640,7 @@ %% -define(SOCKET_OPT_IP_RECVORIGDSTADDR, 24). -define(SOCKET_OPT_IP_RECVTOS, 25). -define(SOCKET_OPT_IP_RECVTTL, 26). -%% -define(SOCKET_OPT_IP_RETOPTS, 27). +-define(SOCKET_OPT_IP_RETOPTS, 27). -define(SOCKET_OPT_IP_ROUTER_ALERT, 28). %% -define(SOCKET_OPT_IP_SNDSRCADDR, 29). -define(SOCKET_OPT_IP_TOS, 30). @@ -2264,6 +2264,9 @@ enc_setopt_value(ip, recvtos, V, _D, _T, _P) enc_setopt_value(ip, recvttl, V, _D, _T, _P) when is_boolean(V) -> V; +enc_setopt_value(ip, retopts, V, _D, _T, _P) + when is_boolean(V) -> + V; enc_setopt_value(ip, router_alert, V, _D, _T, _P) when is_integer(V) -> V; @@ -2725,8 +2728,8 @@ enc_sockopt_key(ip, recvtos = _Opt, _Dir, _D, _T, _P) -> ?SOCKET_OPT_IP_RECVTOS; enc_sockopt_key(ip = _L, recvttl = _Opt, _Dir, _D, T, _P) when (T =/= stream) -> ?SOCKET_OPT_IP_RECVTTL; -enc_sockopt_key(ip = L, retopts = Opt, _Dir, _D, _T, _P) -> - not_supported({L, Opt}); +enc_sockopt_key(ip = _L, retopts = _Opt, _Dir, _D, T, _P) when (T =/= stream) -> + ?SOCKET_OPT_IP_RETOPTS; enc_sockopt_key(ip, router_alert = _Opt, _Dir, _D, raw = _T, _P) -> ?SOCKET_OPT_IP_ROUTER_ALERT; %% On FreeBSD it specifies that this option is only valid |