diff options
author | tuexen <tuexen@FreeBSD.org> | 2016-01-16 12:15:07 +0000 |
---|---|---|
committer | tuexen <tuexen@FreeBSD.org> | 2016-01-16 12:15:07 +0000 |
commit | 8553fd695466577a4971c5c4bb56ae899fcf4be4 (patch) | |
tree | d6d42a8230e8dd335e73a5ef4cec5930771e3330 /sys/netinet/sctp_indata.c | |
parent | 3dd58256b8ff309cee95bb9f2b02bd5824976638 (diff) | |
download | FreeBSD-src-8553fd695466577a4971c5c4bb56ae899fcf4be4.zip FreeBSD-src-8553fd695466577a4971c5c4bb56ae899fcf4be4.tar.gz |
MFC r285792:
Fix several problems with Stream Reset.
1) We were not handling (or sending) the IN_PROGRESS case if
the other side (or our side) was not able to reset (awaiting more data).
2) We would improperly send a stream-reset when we should not. Not
waiting until the TSN had been assigned when data was inqueue.
Diffstat (limited to 'sys/netinet/sctp_indata.c')
-rw-r--r-- | sys/netinet/sctp_indata.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c index 50a6628..9bfdddc 100644 --- a/sys/netinet/sctp_indata.c +++ b/sys/netinet/sctp_indata.c @@ -1886,6 +1886,7 @@ finish_express_del: sctp_reset_in_stream(stcb, liste->number_entries, liste->list_of_streams); TAILQ_REMOVE(&asoc->resetHead, liste, next_resp); + sctp_send_deferred_reset_response(stcb, liste, SCTP_STREAM_RESET_RESULT_PERFORMED); SCTP_FREE(liste, SCTP_M_STRESET); /* sa_ignore FREED_MEMORY */ liste = TAILQ_FIRST(&asoc->resetHead); |