dgaudet 97/09/14 03:30:57
Modified: src CHANGES
src/main http_main.c
Log:
*) Inetd mode (which is buggy) uses timeouts without having setup the
jmpbuffer. [Dean Gaudet] PR#1064
*) Work around problem under Linux where a child will start looping
reporting a select error over and over.
[Rick Franchuk <[EMAIL PROTECTED]>] PR#1107
PR: 1064, 1107
Reviewed by: Dean Gaudet, Roy Fielding, Marc Slemko
Revision Changes Path
1.441 +8 -1 apachen/src/CHANGES
Index: CHANGES
===================================================================
RCS file: /export/home/cvs/apachen/src/CHANGES,v
retrieving revision 1.440
retrieving revision 1.441
diff -u -r1.440 -r1.441
--- CHANGES 1997/09/14 07:34:35 1.440
+++ CHANGES 1997/09/14 10:30:53 1.441
@@ -1,5 +1,12 @@
Changes with Apache 1.3b1
-
+
+ *) Inetd mode (which is buggy) uses timeouts without having setup the
+ jmpbuffer. [Dean Gaudet] PR#1064
+
+ *) Work around problem under Linux where a child will start looping
+ reporting a select error over and over.
+ [Rick Franchuk <[EMAIL PROTECTED]>] PR#1107
+
*) Fixed error in proxy_util.c when looping through multiple host IP
addresses. [Lars Eilebrecht] PR#974
1.223 +14 -1 apachen/src/main/http_main.c
Index: http_main.c
===================================================================
RCS file: /export/home/cvs/apachen/src/main/http_main.c,v
retrieving revision 1.222
retrieving revision 1.223
diff -u -r1.222 -r1.223
--- http_main.c 1997/09/13 23:10:50 1.222
+++ http_main.c 1997/09/14 10:30:56 1.223
@@ -2851,8 +2851,18 @@
memcpy(&main_fds, &listenfds, sizeof(fd_set));
srv = ap_select(listenmaxfd+1, &main_fds, NULL, NULL, NULL);
- if (srv < 0 && errno != EINTR)
+ if (srv < 0 && errno != EINTR) {
+#ifdef LINUX
+ if (errno == EFAULT) {
+ aplog_error(APLOG_MARK, APLOG_ERR, server_conf,
+ "select: (listen) fatal, exiting");
+ child_exit_modules (pconf, server_conf);
+ destroy_pool(pconf);
+ exit(1);
+ }
+#endif
aplog_error(APLOG_MARK, APLOG_ERR, server_conf, "select:
(listen)");
+ }
if (srv <= 0)
continue;
@@ -3579,6 +3589,9 @@
GETUSERMODE();
}
#endif
+ if (ap_setjmp (jmpbuffer)) {
+ exit (0);
+ }
l = sizeof(sa_client);
if ((getpeername(fileno(stdin), &sa_client, &l)) < 0)