From 51f099c2d225c2ecb1313150513100fdb9d302ca Mon Sep 17 00:00:00 2001 From: rrs Date: Fri, 29 Jun 2007 15:14:23 +0000 Subject: - 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) --- sys/netinet/sctp_indata.c | 13 ------------- 1 file changed, 13 deletions(-) (limited to 'sys/netinet/sctp_indata.c') 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 */ -- cgit v1.1