aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/test
diff options
context:
space:
mode:
authorMicael Karlberg <[email protected]>2018-07-25 14:09:24 +0200
committerMicael Karlberg <[email protected]>2018-09-18 14:50:18 +0200
commitcb8877a5561ac64704337441936b62c8c87f8d13 (patch)
treef133ddb2c67a6db6608638c67bd585a8146b15f3 /lib/kernel/test
parent673367a0c17349a8b57dfad5dbc349c68417c6a5 (diff)
downloadotp-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 'lib/kernel/test')
-rw-r--r--lib/kernel/test/socket_client.erl10
-rw-r--r--lib/kernel/test/socket_server.erl6
2 files changed, 12 insertions, 4 deletions
diff --git a/lib/kernel/test/socket_client.erl b/lib/kernel/test/socket_client.erl
index 0d332e8439..094b7eebc5 100644
--- a/lib/kernel/test/socket_client.erl
+++ b/lib/kernel/test/socket_client.erl
@@ -22,8 +22,8 @@
-export([
start/1, start/5,
- start_tcp/1, start_tcp/2, start_tcp6/1,
- start_udp/1, start_udp/2, start_udp6/1
+ start_tcp/1, start_tcp/2, start_tcp4/1, start_tcp6/1,
+ start_udp/1, start_udp/2, start_udp4/1, start_udp6/1
]).
-define(LIB, socket_lib).
@@ -34,6 +34,9 @@ start(Port) ->
start_tcp(Port).
start_tcp(Port) ->
+ start_tcp4(Port).
+
+start_tcp4(Port) ->
start(inet, stream, tcp, Port).
start_tcp6(Port) ->
@@ -46,6 +49,9 @@ start_tcp(Addr, Port) when (size(Addr) =:= 8) ->
start_udp(Port) ->
+ start_udp4(Port).
+
+start_udp4(Port) ->
start(inet, dgram, udp, Port).
start_udp6(Port) ->
diff --git a/lib/kernel/test/socket_server.erl b/lib/kernel/test/socket_server.erl
index 447e742895..8087a0ddda 100644
--- a/lib/kernel/test/socket_server.erl
+++ b/lib/kernel/test/socket_server.erl
@@ -642,6 +642,7 @@ handler_init(Manager, ID, Peek, Sock) ->
RecvOPTS = GIP4(recvopts), % Not stream
RecvTOS = GIP4(recvtos),
RecvTTL = GIP4(recvttl), % not stream
+ RetOpts = GIP4(retopts), % not stream
TOS = GIP4(tos),
Transparent = GIP4(transparent),
TTL = GIP4(ttl),
@@ -687,6 +688,7 @@ handler_init(Manager, ID, Peek, Sock) ->
"~n (ip) Recv OPTS: ~s"
"~n (ip) Recv TOS: ~s"
"~n (ip) Recv TTL: ~s"
+ "~n (ip) Ret Opts: ~s"
"~n (ip) TOS: ~s"
"~n (ip) Transparent: ~s"
"~n (ip) TTL: ~s"
@@ -707,12 +709,12 @@ handler_init(Manager, ID, Peek, Sock) ->
RcvBuf, RcvLW, RcvTO, SndBuf, SndLW, SndTO,
Linger, Timestamp,
FreeBind, MTU, MTUDisc, MALL, MIF4, MLoop4, MTTL,
- NF, PktInfo,RecvErr4, RecvIF, RecvOPTS, RecvTOS, RecvTTL,
+ NF, PktInfo,RecvErr4, RecvIF, RecvOPTS, RecvTOS, RecvTTL, RetOpts,
TOS, Transparent, TTL,
MHops, MIF6, MLoop6, RecvErr6, RecvPktInfo,
RtHdr, AuthHdr, HopLimit, HopOpts, DstOpts, FlowInfo,
UHops]),
-
+
handler_loop(#handler{peek = Peek,
manager = Manager,
type = Type,