diff options
author | tuexen <tuexen@FreeBSD.org> | 2016-01-24 22:31:34 +0000 |
---|---|---|
committer | tuexen <tuexen@FreeBSD.org> | 2016-01-24 22:31:34 +0000 |
commit | 01ec5b07468c4eeb80addcdd5d813cb84fa698ea (patch) | |
tree | a970a52ae166335c5dcaa8b1911849097e80575c /lib/libc | |
parent | ecb383966d935b9e2d2f89f965f1c7cc98b1971e (diff) | |
download | FreeBSD-src-01ec5b07468c4eeb80addcdd5d813cb84fa698ea.zip FreeBSD-src-01ec5b07468c4eeb80addcdd5d813cb84fa698ea.tar.gz |
sctp_sendx() needs to provide the assoc_id back.
MFC after: 3 days
Diffstat (limited to 'lib/libc')
-rw-r--r-- | lib/libc/net/sctp_sys_calls.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/lib/libc/net/sctp_sys_calls.c b/lib/libc/net/sctp_sys_calls.c index 30f7fcc..dcbcee7 100644 --- a/lib/libc/net/sctp_sys_calls.c +++ b/lib/libc/net/sctp_sys_calls.c @@ -700,14 +700,19 @@ sctp_sendx(int sd, const void *msg, size_t msg_len, #ifdef SYS_sctp_generic_sendmsg if (addrcnt == 1) { socklen_t l; + ssize_t ret; /* * Quick way, we don't need to do a connectx so lets use the * syscall directly. */ l = addrs->sa_len; - return (syscall(SYS_sctp_generic_sendmsg, sd, - msg, msg_len, addrs, l, sinfo, flags)); + ret = syscall(SYS_sctp_generic_sendmsg, sd, + msg, msg_len, addrs, l, sinfo, flags); + if ((ret >= 0) && (sinfo != NULL)) { + sinfo->sinfo_assoc_id = sctp_getassocid(sd, addrs); + } + return (ret); } #endif |