aboutsummaryrefslogtreecommitdiffstats
path: root/lib/kernel/src/gen_udp.erl
diff options
context:
space:
mode:
authorTomas Abrahamsson <[email protected]>2012-05-07 00:26:37 +0200
committerTomas Abrahamsson <[email protected]>2012-08-16 01:40:57 +0200
commit9d3bb79a1bec07706de46a67a001269dbbada293 (patch)
tree8887406c5ce88ae4b44d77478327d0c91689d147 /lib/kernel/src/gen_udp.erl
parentf79dd5dc88ff86c3394d25eed37432c32d80f6da (diff)
downloadotp-9d3bb79a1bec07706de46a67a001269dbbada293.tar.gz
otp-9d3bb79a1bec07706de46a67a001269dbbada293.tar.bz2
otp-9d3bb79a1bec07706de46a67a001269dbbada293.zip
Fix SCTP multihoming
Setting several ip addresses for an SCTP socket worked only for IPv4 on Linux. For IPv6 and for other for instance Solaris and FreeBSD, it failed with badarg for both IPv4 and IPv6. For the first address specified to gen_sctp:open, bind is now called, while for any following addresses, sctp_bindx is called, repeatedly, with one address at a time. Previously, sctp_bindx was called for all addresses in one go, with the addresses in reverse order, and bind was not called at all if more than one address was specified. Both Solaris and FreeBSD requires bind to have been called before calling sctp_bindx, and FreeBSD additionally allows at most one address at a time in the call to sctp_bindx. For some versions of Linux, for instance SuSE 10, the port can be 0 only for the call to bind but not for subsequent calls to sctp_bindx, so replace with the port number assigned by the operating system.
Diffstat (limited to 'lib/kernel/src/gen_udp.erl')
0 files changed, 0 insertions, 0 deletions