Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 3 Aug 2004 13:46:40 -0400
From:      Bill Moran <wmoran@potentialtech.com>
To:        rhempel@bmts.com
Cc:        freebsd-questions@freebsd.org
Subject:   Re: One OR MORE of source and destination addresses?
Message-ID:  <20040803134640.2b839e66.wmoran@potentialtech.com>
In-Reply-To: <CAEBIOGHPFFJALBLJBEDCEJDGJAA.rhempel@bmts.com>
References:  <200408031633.I73GXIBP038908@asarian-host.net> <CAEBIOGHPFFJALBLJBEDCEJDGJAA.rhempel@bmts.com>

next in thread | previous in thread | raw e-mail | index | archive | help
"Ralph Hempel" <rhempel@bmts.com> wrote:
> 
> > I just took a look at the code:
> > 
> >  if (q != NULL) { /* should never occur */
> >   if (last_log != time_second) {
> >    last_log = time_second;
> >    printf("ipfw: install_state: entry already present, done\n");
> >   }
> >   return 0;
> >  }
> > 
> > What if I just hack the "printf ..." line out of there? Would that 'solve'
> > it? I know it's dirty; but would things still work?
> 
> I'll jump in here as a software manager and say NO!!!!!
> 
> Note, I have no idea if it will still work, but as a professional
> programmer, the question raises a number of issues :-)
> 
> 1. First of all, the original programmer took time to comment
>    this line:
> 
>     if (q != NULL) { /* should never occur */
> 
>    OK. There's no indication WHY it should never occur, but still, the comment
>    is there.
> 
> 2. By adding this line: 
> 
>     if (last_log != time_second) {
> 
>    He's limiting the printed errors to one every second, so you
>    are not beeing flooded with as many messages as are actually
>    ocurring.
> 
>    Is last_log used anywhere else?
> 
> 3. This line:
> 
>      return 0;
> 
>    will still return 0 if the error occurs, so the program will
>    work the same with or without the diagnostic message.
> 
> I'd do some more digging and find out exactly WHY this is a "should never
> occur case" to be sure that the log is not needed. If you don't print
> the log, then why do the test, except to return 0 :-)

I was thinking about this over lunch, then I saw your post ... and the
reality is that someone should really file a PR.

Mark, since you have a real-world application where this problem occurs,
it would be idea if you could file a PR with your description of what
you're trying to do and the problem it's causing.

As best I can tell, the problem is _not_ in install_state ... only the
symptom is in install_state.  The problem is that code that is calling
install_state is calling it twice for some reason.  Taking that into
consideration, there's a possibility that this is fixed in -CURRENT,
but I haven't found any commit entries to that tune.

-- 
Bill Moran
Potential Technologies
http://www.potentialtech.com



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