aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel
diff options
context:
space:
mode:
authorRaimo Niskanen <[email protected]>2011-09-19 12:10:46 +0200
committerRaimo Niskanen <[email protected]>2011-09-19 12:18:45 +0200
commit0159f7a9598c1d88b2e184dcc442c254ef8f14c9 (patch)
tree8f0a6bed21549b74b0a48e556fd1606b71cbefbf /lib/kernel
parentff371b3b33e435f63962615be06404f6f8af3d5e (diff)
downloadotp-0159f7a9598c1d88b2e184dcc442c254ef8f14c9.tar.gz
otp-0159f7a9598c1d88b2e184dcc442c254ef8f14c9.tar.bz2
otp-0159f7a9598c1d88b2e184dcc442c254ef8f14c9.zip
erts,kernel: Bugfix - read SCTP socket options from right protocol layer
Socket options 'sndbuf', 'recbuf' and 'linger were read from the SCTP protocol layer instead of from the socket protocol layer. Conflicts: lib/kernel/test/gen_sctp_SUITE.erl
Diffstat (limited to 'lib/kernel')
-rw-r--r--lib/kernel/test/gen_sctp_SUITE.erl21
1 files changed, 19 insertions, 2 deletions
diff --git a/lib/kernel/test/gen_sctp_SUITE.erl b/lib/kernel/test/gen_sctp_SUITE.erl
index da2f533097..9ba226864d 100644
--- a/lib/kernel/test/gen_sctp_SUITE.erl
+++ b/lib/kernel/test/gen_sctp_SUITE.erl
@@ -24,11 +24,11 @@
%%-compile(export_all).
-export([all/1,init_per_testcase/2,fin_per_testcase/2,
- basic/1,api_open_close/1,api_listen/1,api_connect_init/1,
+ basic/1,api_open_close/1,api_listen/1,api_connect_init/1,api_opts/1,
xfer_min/1,xfer_active/1]).
all(suite) ->
- [basic,api_open_close,api_listen,api_connect_init,xfer_min,xfer_active].
+ [basic,api_open_close,api_listen,api_connect_init,api_opts,xfer_min,xfer_active].
init_per_testcase(_Func, Config) ->
Dog = test_server:timetrap(test_server:seconds(15)),
@@ -385,6 +385,23 @@ api_connect_init(Config) when is_list(Config) ->
?line ok = gen_sctp:close(Sb),
ok.
+api_opts(doc) ->
+ "Test socket options";
+api_opts(suite) ->
+ [];
+api_opts(Config) when is_list(Config) ->
+ ?line Sndbuf = 32768,
+ ?line Recbuf = 65536,
+ ?line {ok,S} = gen_sctp:open(0),
+ ?line ok = inet:setopts(S, [{sndbuf,Sndbuf}]),
+ ?line ok = inet:setopts(S, [{recbuf,Recbuf}]),
+ ?line case inet:getopts(S, [sndbuf]) of
+ {ok,[{sndbuf,SB}]} when SB >= Sndbuf -> ok
+ end,
+ ?line case inet:getopts(S, [recbuf]) of
+ {ok,[{recbuf,RB}]} when RB >= Recbuf -> ok
+ end.
+
do_from_other_process(Fun) ->