summaryrefslogtreecommitdiffstats
path: root/sys/netinet/sctp_indata.c
diff options
context:
space:
mode:
authorrrs <rrs@FreeBSD.org>2007-06-29 15:14:23 +0000
committerrrs <rrs@FreeBSD.org>2007-06-29 15:14:23 +0000
commit51f099c2d225c2ecb1313150513100fdb9d302ca (patch)
tree42f572a47770dff08bbee266f2d70330dae700b4 /sys/netinet/sctp_indata.c
parentf5523801a379fd60b10766884cebdfc21bf8db35 (diff)
downloadFreeBSD-src-51f099c2d225c2ecb1313150513100fdb9d302ca.zip
FreeBSD-src-51f099c2d225c2ecb1313150513100fdb9d302ca.tar.gz
- When a SCTP socket is closed, but the last data
SACK is lost, we would incorrectly abort the association instead of retransmitting the SACK. Approved by: re@freebsd.org (Ken Smith)
Diffstat (limited to 'sys/netinet/sctp_indata.c')
-rw-r--r--sys/netinet/sctp_indata.c13
1 files changed, 0 insertions, 13 deletions
diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c
index f3fdcfc..d49721c 100644
--- a/sys/netinet/sctp_indata.c
+++ b/sys/netinet/sctp_indata.c
@@ -2489,19 +2489,6 @@ sctp_process_data(struct mbuf **mm, int iphlen, int *offset, int length,
m = *mm;
SCTP_TCB_LOCK_ASSERT(stcb);
asoc = &stcb->asoc;
- if ((stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_GONE) ||
- (stcb->sctp_ep->sctp_flags & SCTP_PCB_FLAGS_SOCKET_ALLGONE) ||
- (stcb->asoc.state & SCTP_STATE_CLOSED_SOCKET)) {
- /*
- * wait a minute, this guy is gone, there is no longer a
- * receiver. Send peer an ABORT!
- */
- struct mbuf *op_err;
-
- op_err = sctp_generate_invmanparam(SCTP_CAUSE_OUT_OF_RESC);
- sctp_abort_an_association(stcb->sctp_ep, stcb, 0, op_err);
- return (2);
- }
if (compare_with_wrap(stcb->asoc.highest_tsn_inside_map,
stcb->asoc.cumulative_tsn, MAX_TSN)) {
/* there was a gap before this data was processed */
OpenPOWER on IntegriCloud