diff options
author | Raimo Niskanen <[email protected]> | 2011-09-20 15:56:59 +0000 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2011-11-17 15:42:13 +0100 |
commit | 2831667add272eab3915bcecd9b8f3c89aad78f3 (patch) | |
tree | 8ca00d9d8bb17c49d707e04a3b82967c572279e5 | |
parent | fe19021972e12c7fb063f56209a4a305a134dfb6 (diff) | |
download | otp-2831667add272eab3915bcecd9b8f3c89aad78f3.tar.gz otp-2831667add272eab3915bcecd9b8f3c89aad78f3.tar.bz2 otp-2831667add272eab3915bcecd9b8f3c89aad78f3.zip |
kernel: Bugfix - SCTP connect with sndrcvinfo in assoc_change event
On some platforms (FreeBSD) the #sctp_assoc_change{state=comm_up}
event arriving during gen_sctp:connect/4,5 contains ancillary
data #sctp_sndrcvinfo{}. That was not expected by the code.
-rw-r--r-- | lib/kernel/src/inet_sctp.erl | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/lib/kernel/src/inet_sctp.erl b/lib/kernel/src/inet_sctp.erl index 8482dd1b12..2d799d79fa 100644 --- a/lib/kernel/src/inet_sctp.erl +++ b/lib/kernel/src/inet_sctp.erl @@ -111,7 +111,7 @@ connect(S, Addr, Port, Opts, Timer) -> connect_get_assoc(S, Addr, Port, false, Timer) -> case recv(S, inet:timeout(Timer)) of - {ok, {Addr, Port, [], #sctp_assoc_change{state=St}=Ev}} -> + {ok, {Addr, Port, _, #sctp_assoc_change{state=St}=Ev}} -> if St =:= comm_up -> %% Yes, successfully connected, return the whole %% sctp_assoc_change event (containing, in particular, @@ -132,7 +132,7 @@ connect_get_assoc(S, Addr, Port, false, Timer) -> connect_get_assoc(S, Addr, Port, Active, Timer) -> Timeout = inet:timeout(Timer), receive - {sctp,S,Addr,Port,{[],#sctp_assoc_change{state=St}=Ev}} -> + {sctp,S,Addr,Port,{_,#sctp_assoc_change{state=St}=Ev}} -> case Active of once -> prim_inet:setopt(S, active, once); |