diff options
author | Raimo Niskanen <[email protected]> | 2011-09-19 12:10:46 +0200 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2011-09-19 12:18:45 +0200 |
commit | 0159f7a9598c1d88b2e184dcc442c254ef8f14c9 (patch) | |
tree | 8f0a6bed21549b74b0a48e556fd1606b71cbefbf /lib | |
parent | ff371b3b33e435f63962615be06404f6f8af3d5e (diff) | |
download | otp-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')
-rw-r--r-- | lib/kernel/test/gen_sctp_SUITE.erl | 21 |
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) -> |