fielding 99/01/03 05:09:49
Modified: src CHANGES src/main http_main.c Log: In order to prevent some errant library code from setting an alarm on one request and having it affect some later connection, force the alarm to be cleared before each connection even if Apache's own timeouts are being handled by the parent. This doesn't help for multiple requests on the same connection, but it is extremely unlikely that a request stream would persist longer than a non-Apache errant timeout, and this limits the problem to a single user without impacting performance. Revision Changes Path 1.1197 +5 -0 apache-1.3/src/CHANGES Index: CHANGES =================================================================== RCS file: /home/cvs/apache-1.3/src/CHANGES,v retrieving revision 1.1196 retrieving revision 1.1197 diff -u -r1.1196 -r1.1197 --- CHANGES 1999/01/03 12:04:34 1.1196 +++ CHANGES 1999/01/03 13:09:46 1.1197 @@ -1,5 +1,10 @@ Changes with Apache 1.3.4 + *) In order to prevent some errant library code from setting an alarm + on one request and having it affect some later connection, force the + alarm to be cleared before each connection even if Apache's own + timeouts are being handled by the parent. [Roy Fielding] + *) Make sure under ELF-based NetBSD (now) and OpenBSD (future) we don't search for an underscore on dlsym() (as it's already the case for FreeBSD 3.0). [Todd Vierling <[EMAIL PROTECTED]>] PR#2462 1.417 +4 -1 apache-1.3/src/main/http_main.c Index: http_main.c =================================================================== RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v retrieving revision 1.416 retrieving revision 1.417 diff -u -r1.416 -r1.417 --- http_main.c 1999/01/01 19:04:49 1.416 +++ http_main.c 1999/01/03 13:09:48 1.417 @@ -3610,7 +3610,10 @@ * (Re)initialize this child to a pre-connection state. */ - ap_kill_timeout(0); /* Cancel any outstanding alarms. */ + ap_kill_timeout(0); /* Cancel any outstanding alarms */ +#ifdef OPTIMIZE_TIMEOUTS + alarm(0); /* even if not set by Apache routines */ +#endif current_conn = NULL; ap_clear_pool(ptrans);