diff options
author | rrs <rrs@FreeBSD.org> | 2008-08-28 09:44:07 +0000 |
---|---|---|
committer | rrs <rrs@FreeBSD.org> | 2008-08-28 09:44:07 +0000 |
commit | a97a9f5233562046294f64d3db07ca1c90e63a35 (patch) | |
tree | 4a6ba48264c10107c71cdb81d7b311404516ea68 /sys/netinet/sctp_indata.c | |
parent | 8ccd4bd3a18f0d73c17c7096b561febf5d6f93d8 (diff) | |
download | FreeBSD-src-a97a9f5233562046294f64d3db07ca1c90e63a35.zip FreeBSD-src-a97a9f5233562046294f64d3db07ca1c90e63a35.tar.gz |
- Make strict-sacks be the default.
- Change it so that without INVARIANTs there are
no panics in SCTP.
- sctp_timer changes so that we have a recovery mechanism
when the sent list is out of order.
Diffstat (limited to 'sys/netinet/sctp_indata.c')
-rw-r--r-- | sys/netinet/sctp_indata.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/netinet/sctp_indata.c b/sys/netinet/sctp_indata.c index 8a1d057..5e00d14 100644 --- a/sys/netinet/sctp_indata.c +++ b/sys/netinet/sctp_indata.c @@ -386,12 +386,21 @@ abandon: if (stcb->asoc.state & SCTP_STATE_ABOUT_TO_BE_FREED) { goto abandon; } else { +#ifdef INVARIANTS if ((stcb->asoc.control_pdapi == NULL) || (stcb->asoc.control_pdapi->tail_mbuf == NULL)) { panic("This should not happen control_pdapi NULL?"); } /* if we did not panic, it was a EOM */ panic("Bad chunking ??"); - return; +#else + if ((stcb->asoc.control_pdapi == NULL) || (stcb->asoc.control_pdapi->tail_mbuf == NULL)) { + SCTP_PRINTF("This should not happen control_pdapi NULL?\n"); + } + SCTP_PRINTF("Bad chunking ??\n"); + SCTP_PRINTF("Dumping re-assembly queue this will probably hose the association\n"); + +#endif + goto abandon; } } cntDel++; |