summaryrefslogtreecommitdiffstats
path: root/sys/netinet/tcp_reass.c
diff options
context:
space:
mode:
authorjlemon <jlemon@FreeBSD.org>2003-03-08 22:06:20 +0000
committerjlemon <jlemon@FreeBSD.org>2003-03-08 22:06:20 +0000
commit03b8ace4891ef0ac6e1d27e79b9464022ed5fba0 (patch)
tree86b7ff103cc19bffc08502fceb82fff6fc3c8d83 /sys/netinet/tcp_reass.c
parent3cab7a88ab3bf9db32f46801047c9350030d5e77 (diff)
downloadFreeBSD-src-03b8ace4891ef0ac6e1d27e79b9464022ed5fba0.zip
FreeBSD-src-03b8ace4891ef0ac6e1d27e79b9464022ed5fba0.tar.gz
Remove a panic(); if the zone allocator can't provide more timewait
structures, reuse the oldest one. Also move the expiry timer from a per-structure callout to the tcp slow timer. Sponsored by: DARPA, NAI Labs
Diffstat (limited to 'sys/netinet/tcp_reass.c')
-rw-r--r--sys/netinet/tcp_reass.c7
1 files changed, 3 insertions, 4 deletions
diff --git a/sys/netinet/tcp_reass.c b/sys/netinet/tcp_reass.c
index 7b4827a..7717e06 100644
--- a/sys/netinet/tcp_reass.c
+++ b/sys/netinet/tcp_reass.c
@@ -2862,7 +2862,7 @@ tcp_timewait(tw, to, th, m, tlen)
if ((ticks - tw->t_starttime) > tcp_msl)
goto reset;
if (CC_GT(to->to_cc, tw->cc_recv)) {
- tcp_twclose(tw);
+ (void) tcp_twclose(tw, 0);
return (1);
}
goto drop;
@@ -2892,7 +2892,7 @@ tcp_timewait(tw, to, th, m, tlen)
* are above the previous ones.
*/
if ((thflags & TH_SYN) && SEQ_GT(th->th_seq, tw->rcv_nxt)) {
- tcp_twclose(tw);
+ (void) tcp_twclose(tw, 0);
return (1);
}
@@ -2908,8 +2908,7 @@ tcp_timewait(tw, to, th, m, tlen)
if (thflags & TH_FIN) {
seq = th->th_seq + tlen + (thflags & TH_SYN ? 1 : 0);
if (seq + 1 == tw->rcv_nxt)
- callout_reset(tw->tt_2msl,
- 2 * tcp_msl, tcp_timer_2msl_tw, tw);
+ tcp_timer_2msl_reset(tw, 2 * tcp_msl);
}
/*
OpenPOWER on IntegriCloud