Skip site navigation (1)Skip section navigation (2)
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>