Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Sep 2006 19:12:46 +0400
From:      Gleb Smirnoff <glebius@FreeBSD.org>
To:        Mike Silbersack <silby@silby.com>
Cc:        cvs-src@FreeBSD.org, src-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/netinet in_pcb.c tcp_subr.c tcp_timer.c tcp_var.h
Message-ID:  <20060906151246.GU40020@FreeBSD.org>
In-Reply-To: <20060906150129.GT40020@FreeBSD.org>
References:  <200609061356.k86DuZ0w016069@repoman.freebsd.org> <20060906091204.B6691@odysseus.silby.com> <20060906143204.GQ40020@FreeBSD.org> <20060906093553.L6691@odysseus.silby.com> <20060906150129.GT40020@FreeBSD.org>

next in thread | previous in thread | raw e-mail | index | archive | help
 followup on my last email:

T> I think we should free the oldmost tcptw entry in a case if we can't
T> find the local endpoint. We can tell definitely that we can't find one
T> only in in_pcbbind_setup() in the "do {} while (in_pcblookup_local)" cycle,
T> where EADDRNOTAVAIL is returned. We can't definitely tell this in
T> in_pcblookup_local() since we don't know whether tried port is the
T> last one.

Another simple enough solution would be to msleep() with tcbinfo mutex
temporarily dropped if we fail to find a port. Then the tcp_timer_2msl_tw()
on the next run will free tcptw entries and wake up us.

Anyway, I'm strongly against doing the purge cycling in the syscalls.

-- 
Totus tuus, Glebius.
GLEBIUS-RIPN GLEB-RIPE



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060906151246.GU40020>