Date: Wed, 29 Jan 1997 11:24:32 -0800 (PST) From: Archie Cobbs <archie@whistle.com> To: terry@lambert.org (Terry Lambert) Cc: archie@whistle.com, ari.suutari@ps.carel.fi, brian@awfulhak.demon.co.uk, hackers@freebsd.org, cmott@srv.net Subject: Re: ipdivert & masqd Message-ID: <199701291924.LAA24150@bubba.whistle.com> In-Reply-To: <199701291733.KAA12218@phaeton.artisoft.com> from Terry Lambert at "Jan 29, 97 10:33:35 am"
next in thread | previous in thread | raw e-mail | index | archive | help
> > > I did some investigations in the kernel land (not being > > > any expert on that), but it seemed like the ip_divert_ignore > > > flag was still set (from processing a outgoing packet) when > > > an incoming packet arrived. > > > > Can I get a quick sanity check on something... the divert code is > > programmed under the assumption that ip_input() and ip_output() > > can never sleep (ie., no other packet can be treated before the > > function returns). This is true, right? > > For the divert handler, you mean? Yes. Then I don't understand how ip_divert_ignore can ever be incorrectly set (ie., non-zero)... if you look at ip_divert.c, you see the only place that it is ever set to a non-zero value is before the outgoing packet is delivered, via a call to ether ip_input() or ip_output() (in the function div_output()). Then it gets reset to zero after either of these functions returns. Am I missing some subtlety in there? -Archie ___________________________________________________________________________ Archie Cobbs * Whistle Communications, Inc. * http://www.whistle.com
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199701291924.LAA24150>