diff options
author | Raimo Niskanen <[email protected]> | 2011-09-28 12:08:49 +0200 |
---|---|---|
committer | Raimo Niskanen <[email protected]> | 2011-09-28 12:08:49 +0200 |
commit | fde38fa8d3120e6aa479f7720654114df9cd4ec8 (patch) | |
tree | 082ef5d9fc6af70be3b593d160f06b8f90048ad7 /erts/emulator/drivers/common/inet_drv.c | |
parent | 32ad9d12c8d600495bb8c206967ffb3172786e3e (diff) | |
parent | 30937b22530827f0e4686494230d17a15ff7accb (diff) | |
download | otp-fde38fa8d3120e6aa479f7720654114df9cd4ec8.tar.gz otp-fde38fa8d3120e6aa479f7720654114df9cd4ec8.tar.bz2 otp-fde38fa8d3120e6aa479f7720654114df9cd4ec8.zip |
Merge branch 'raimo/sctp-getsetopts-dev/OTP-9544' into dev
* raimo/sctp-getsetopts-dev/OTP-9544:
erts,kernel: Bugfix - read SCTP socket options from right protocol layer
erts: Fix bug SCTP send can only be called from controlling process
Diffstat (limited to 'erts/emulator/drivers/common/inet_drv.c')
-rw-r--r-- | erts/emulator/drivers/common/inet_drv.c | 9 |
1 files changed, 4 insertions, 5 deletions
diff --git a/erts/emulator/drivers/common/inet_drv.c b/erts/emulator/drivers/common/inet_drv.c index 743c01d935..43114c6039 100644 --- a/erts/emulator/drivers/common/inet_drv.c +++ b/erts/emulator/drivers/common/inet_drv.c @@ -6539,7 +6539,7 @@ static int sctp_fill_opts(inet_descriptor* desc, char* buf, int buflen, struct linger lg; unsigned int sz = sizeof(lg); - if (sock_getopt(desc->s, IPPROTO_SCTP, SO_LINGER, + if (sock_getopt(desc->s, SOL_SOCKET, SO_LINGER, &lg, &sz) < 0) continue; /* Fill in the response: */ PLACE_FOR(spec, i, @@ -6575,7 +6575,7 @@ static int sctp_fill_opts(inet_descriptor* desc, char* buf, int buflen, { case INET_OPT_RCVBUF : { - proto = IPPROTO_SCTP; + proto = SOL_SOCKET; type = SO_RCVBUF; is_int = 1; tag = am_recbuf; @@ -6583,7 +6583,7 @@ static int sctp_fill_opts(inet_descriptor* desc, char* buf, int buflen, } case INET_OPT_SNDBUF : { - proto = IPPROTO_SCTP; + proto = SOL_SOCKET; type = SO_SNDBUF; is_int = 1; tag = am_sndbuf; @@ -7029,8 +7029,7 @@ static int sctp_fill_opts(inet_descriptor* desc, char* buf, int buflen, i = LOAD_TUPLE(spec, i, 3); /* Now, convert "spec" into the returnable term: */ - /* desc->caller = 0; What does it mean? */ - driver_output_term(desc->port, spec, i); + driver_send_term(desc->port, driver_caller(desc->port), spec, i); FREE(spec); (*dest)[0] = INET_REP_SCTP; |