In message <[EMAIL PROTECTED]>, Christopher Weimann writes:
>I am using on a web filter ( dansguardian.org ) and am having
>problems on FreeBSD (4.5-STABLE).  The filter runs fine for
>about 20 minutes or so then can't seem to come up with the
>right ip addresses for any client machines.
>
>After much reading of man pages, Stevens, and some banging 
>of my head against the desk I decided that maybe it wasn't 
>me :)  I found a PR that I think seems to relate (misc/34307) 
>but this still confuses me.  I would think that if the 
>situation this PR describes were to be the case all sorts 
>of things wouldn't be working right.

Is the code in question correctly initialising the variable that
the `addrlen' parameter points to before calling accept?  It looks
as if this might be the problem in the PR you mention. I mean that
the code should look like

        sin_len = sizeof(sin);
        s = accept(servsock, (struct sockaddr *)&sin, &sin_len);

where `sin_len' is reset to the correct length before calling
accept() each time. I think sin_len may be reset to 0 when an error
occurs, but otherwise you would get away with not resetting it.

Ian

To Unsubscribe: send mail to [EMAIL PROTECTED]
with "unsubscribe freebsd-questions" in the body of the message

Reply via email to