summaryrefslogtreecommitdiffstats
path: root/sys/netinet
diff options
context:
space:
mode:
authortuexen <tuexen@FreeBSD.org>2015-11-26 23:12:41 +0000
committertuexen <tuexen@FreeBSD.org>2015-11-26 23:12:41 +0000
commitc556e5f8258ae981311f7d46d49164ffa1eee1d5 (patch)
tree05e0acc6658e146b6b2e34c5c117b810b612574b /sys/netinet
parent954c038d83b067da45db2a8385b0c5cbad02cb60 (diff)
downloadFreeBSD-src-c556e5f8258ae981311f7d46d49164ffa1eee1d5.zip
FreeBSD-src-c556e5f8258ae981311f7d46d49164ffa1eee1d5.tar.gz
When the sending of an SCTP outgoing stream reset request fails,
don't report it to the user since all stream have been marked as pending. MFC after: 1 week
Diffstat (limited to 'sys/netinet')
-rw-r--r--sys/netinet/sctp_usrreq.c15
1 files changed, 12 insertions, 3 deletions
diff --git a/sys/netinet/sctp_usrreq.c b/sys/netinet/sctp_usrreq.c
index 6a474e3..eafa2c9 100644
--- a/sys/netinet/sctp_usrreq.c
+++ b/sys/netinet/sctp_usrreq.c
@@ -4651,11 +4651,20 @@ sctp_setopt(struct socket *so, int optname, void *optval, size_t optsize,
error = sctp_send_str_reset_req(stcb, strrst->srs_number_streams,
strrst->srs_stream_list,
send_in, 0, 0, 0, 0, 0);
- } else
+ } else {
error = sctp_send_stream_reset_out_if_possible(stcb, SCTP_SO_LOCKED);
- if (!error)
+ }
+ if (error == 0) {
sctp_chunk_output(inp, stcb, SCTP_OUTPUT_FROM_STRRST_REQ, SCTP_SO_LOCKED);
-
+ } else {
+ /*
+ * For outgoing streams don't report any
+ * problems in sending the request to the
+ * application. XXX: Double check resetting
+ * incoming streams.
+ */
+ error = 0;
+ }
SCTP_TCB_UNLOCK(stcb);
break;
}
OpenPOWER on IntegriCloud