You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by ji...@apache.org on 2004/04/06 18:42:20 UTC
cvs commit: apache-1.3/src/main http_main.c
jim 2004/04/06 09:42:20
Modified: src/main http_main.c
Log:
handle fact that lsockets aren't closed and reopened
across restarts, so there's a potential issue with a
socket being marked (still) as non-blocking.
Submitted by: Jeff
Reviewed by: Jim
Revision Changes Path
1.612 +11 -0 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.611
retrieving revision 1.612
diff -u -r1.611 -r1.612
--- http_main.c 29 Mar 2004 17:33:52 -0000 1.611
+++ http_main.c 6 Apr 2004 16:42:19 -0000 1.612
@@ -4034,6 +4034,17 @@
lr = lr->next;
} while (lr != ap_listeners);
}
+ else {
+ /* we could be restarting with a single remaining listening
+ * socket, still in non-blocking state from a previous
+ * generation which had more listening sockets
+ */
+ if (soblock(ap_listeners->fd) < 0) {
+ ap_log_error(APLOG_MARK, APLOG_CRIT, NULL,
+ "A listening socket could not be made blocking.");
+ exit(APEXIT_INIT);
+ }
+ }
#endif /* NONBLOCK_WHEN_MULTI_LISTEN */
#ifdef NO_SERIALIZED_ACCEPT