summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_indata.c
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2015-07-22 11:30:37 +0000
committerrrs <rrs@FreeBSD.org>2015-07-22 11:30:37 +0000
commit606fc6cd559dcdd7115db80f7c82470ff6068a17 (patch)
treefe3b690c2cb0041a06258b9b2c5f4b51cb038ede /sys/netinet/sctp_indata.c
parentb2a714f330c67d066337007089a3e7044823d46e (diff)
downloadFreeBSD-src-606fc6cd559dcdd7115db80f7c82470ff6068a17.zip
FreeBSD-src-606fc6cd559dcdd7115db80f7c82470ff6068a17.tar.gz
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. Reviewed by: tuexen
Diffstat (limited to 'sys/netinet/sctp_indata.c')
-rw-r--r--sys/netinet/sctp_indata.c1
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);
OpenPOWER on IntegriCloud