summaryrefslogtreecommitdiff
path: root/sys/netinet/tcp_subr.c
diff options
context:
space:
mode:
authorJayanth Vijayaraghavan <jayanth@FreeBSD.org>2000-07-21 23:26:37 +0000
committerJayanth Vijayaraghavan <jayanth@FreeBSD.org>2000-07-21 23:26:37 +0000
commite7f326930765ac0ad7439182387b5b2a1af29d45 (patch)
tree06119b12989d6870cb00a583595ccc4853a75515 /sys/netinet/tcp_subr.c
parentddb820b015b4bce522e6559d78c0f7daebee0ae0 (diff)
Notes
Diffstat (limited to 'sys/netinet/tcp_subr.c')
-rw-r--r--sys/netinet/tcp_subr.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c
index 68f87aa173b5..da613d569c01 100644
--- a/sys/netinet/tcp_subr.c
+++ b/sys/netinet/tcp_subr.c
@@ -680,6 +680,18 @@ tcp_close(tp)
tcpstat.tcps_cachedssthresh++;
}
}
+ rt = inp->inp_route.ro_rt;
+ if (rt) {
+ /*
+ * mark route for deletion if no information is
+ * cached.
+ */
+ if ((tp->t_flags & TF_LQ_OVERFLOW) &&
+ ((rt->rt_rmx.rmx_locks & RTV_RTT) == 0)){
+ if (rt->rt_rmx.rmx_rtt == 0)
+ rt->rt_flags |= RTF_DELCLONE;
+ }
+ }
no_valid_rt:
/* free the reassembly queue, if any */
while((q = LIST_FIRST(&tp->t_segq)) != NULL) {