diff options
author | tuexen <tuexen@FreeBSD.org> | 2015-11-26 23:12:41 +0000 |
---|---|---|
committer | tuexen <tuexen@FreeBSD.org> | 2015-11-26 23:12:41 +0000 |
commit | c556e5f8258ae981311f7d46d49164ffa1eee1d5 (patch) | |
tree | 05e0acc6658e146b6b2e34c5c117b810b612574b /sys/netinet | |
parent | 954c038d83b067da45db2a8385b0c5cbad02cb60 (diff) | |
download | FreeBSD-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.c | 15 |
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; } |