Ah yeah, I noticed the problem with the JMP_BUF but for some reason I
missed the local statics.  I am assuming that these local variables are
static simply to accomodate the setjmp() call.  If I get rid of setjmp()
and simply set the recv/send timeouts on the socket itself, there
shouldn't be any reason to have the locals declared as static.

See the attached .diff file.  Seems to work fine on NetWare.


Brad

Brad Nicholes
Senior Software Engineer
Novell, Inc., the leading provider of Net business solutions
http://www.novell.com 

>>> [EMAIL PROTECTED] Wednesday, September 17, 2003 11:38:16 AM >>>
At 04:54 PM 9/16/2003, Brad Nicholes wrote:
>  Looking through the code I don't see anything that would be a
thread-safety issue.  What am I missing?


/* rfc1413 - return remote user name, given socket structures */
API_EXPORT(char *) ap_rfc1413(conn_rec *conn, server_rec *srv)
{
    static char user[RFC1413_USERLEN + 1];      /* XXX */
    static char *result;
    static int sock;

Presumes that the requests are serialized (note static storage of
these
and the JMP_BUF, which might have per-thread context on some
platforms.)

Bill


Attachment: rfc1413.c.diff
Description: Binary data

Reply via email to