manoj 99/07/15 22:30:36
Modified: mpm/src/include httpd.h mpm/src/modules/mpm/mpmt_pthread Makefile.tmpl acceptlock.c mpmt_pthread.h scoreboard.h mpm/src/modules/mpm/prefork Makefile.tmpl prefork.c mpm/src/modules/mpm/spmt_os2 Makefile.tmpl spmt_os2.c Added: mpm/src/modules/mpm/mpmt_pthread mpm_default.h mpm/src/modules/mpm/prefork mpm_default.h mpm/src/modules/mpm/spmt_os2 mpm_default.h Log: Move HARD_SERVER_LIMIT, HARD_THREAD_LIMIT, and other defines from httpd.h that are really mpm-specific, and move them into a header file in each MPM directory. Revision Changes Path 1.7 +0 -47 apache-2.0/mpm/src/include/httpd.h Index: httpd.h =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/include/httpd.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -u -r1.6 -r1.7 --- httpd.h 1999/07/12 22:51:09 1.6 +++ httpd.h 1999/07/16 05:30:25 1.7 @@ -277,53 +277,6 @@ /* The size of the server's internal read-write buffers */ #define IOBUFSIZE 8192 -/* Number of servers to spawn off by default --- also, if fewer than - * this free when the caretaker checks, it will spawn more. - */ -#ifndef DEFAULT_START_DAEMON -#define DEFAULT_START_DAEMON 5 -#endif - -/* Maximum number of *free* server processes --- more than this, and - * they will die off. - */ - -#ifndef DEFAULT_MAX_FREE_DAEMON -#define DEFAULT_MAX_FREE_DAEMON 10 -#endif - -/* Minimum --- fewer than this, and more will be created */ - -#ifndef DEFAULT_MIN_FREE_DAEMON -#define DEFAULT_MIN_FREE_DAEMON 5 -#endif - -/* Limit on the total --- clients will be locked out if more servers than - * this are needed. It is intended solely to keep the server from crashing - * when things get out of hand. - * - * We keep a hard maximum number of servers, for two reasons --- first off, - * in case something goes seriously wrong, we want to stop the fork bomb - * short of actually crashing the machine we're running on by filling some - * kernel table. Secondly, it keeps the size of the scoreboard file small - * enough that we can read the whole thing without worrying too much about - * the overhead. - */ -#ifndef HARD_SERVER_LIMIT -#define HARD_SERVER_LIMIT 8 -#endif - -/* Limit on the threads per process. Clients will be locked out if more than - * this * HARD_SERVER_LIMIT are needed. - * - * We keep this for one reason it keeps the size of the scoreboard file small - * enough that we can read the whole thing without worrying too much about - * the overhead. - */ -#ifndef HARD_THREAD_LIMIT -#define HARD_THREAD_LIMIT 64 -#endif - /* * Special Apache error codes. These are basically used * in http_main.c so we can keep track of various errors. 1.6 +2 -3 apache-2.0/mpm/src/modules/mpm/mpmt_pthread/Makefile.tmpl Index: Makefile.tmpl =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/Makefile.tmpl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -u -r1.5 -r1.6 --- Makefile.tmpl 1999/07/13 20:32:49 1.5 +++ Makefile.tmpl 1999/07/16 05:30:28 1.6 @@ -81,8 +81,7 @@ $(INCDIR)/ap_hooks.h $(INCDIR)/http_core.h \ $(INCDIR)/http_connection.h $(INCDIR)/ap_mpm.h \ $(OSDIR)/unixd.h $(OSDIR)/iol_socket.h \ - $(INCDIR)/ap_listen.h scoreboard.h \ - acceptlock.h ../../../lib/expat-lite/xmlparse.h + $(INCDIR)/ap_listen.h scoreboard.h mpm_default.h acceptlock.h scoreboard.o: scoreboard.c $(INCDIR)/httpd.h \ $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h \ $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \ @@ -94,4 +93,4 @@ $(INCDIR)/http_main.h $(INCDIR)/http_core.h \ $(INCDIR)/http_config.h $(INCDIR)/ap_hooks.h \ $(OSDIR)/unixd.h $(INCDIR)/http_conf_globals.h \ - mpmt_pthread.h scoreboard.h + mpmt_pthread.h scoreboard.h mpm_default.h 1.6 +1 -0 apache-2.0/mpm/src/modules/mpm/mpmt_pthread/acceptlock.c Index: acceptlock.c =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/acceptlock.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -d -u -r1.5 -r1.6 --- acceptlock.c 1999/07/09 20:40:20 1.5 +++ acceptlock.c 1999/07/16 05:30:28 1.6 @@ -153,6 +153,7 @@ /* XXX - Don't know if we need the intraprocess locks here */ #include <ulocks.h> +#include "mpm_default.h" static ulock_t *uslock = NULL; 1.3 +5 -0 apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.h Index: mpmt_pthread.h =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -u -r1.2 -r1.3 --- mpmt_pthread.h 1999/07/09 20:40:23 1.2 +++ mpmt_pthread.h 1999/07/16 05:30:29 1.3 @@ -55,9 +55,14 @@ * */ +#ifndef APACHE_MPM_MPMT_PTHREAD_H +#define APACHE_MPM_MPMT_PTHREAD_H + extern int ap_threads_per_child; extern int ap_max_requests_per_child; extern int ap_pipe_of_death[2]; extern void clean_child_exit(int); extern int ap_extended_status; extern void clean_child_exit(int); + +#endif /* APACHE_MPM_MPMT_PTHREAD_H */ 1.4 +2 -0 apache-2.0/mpm/src/modules/mpm/mpmt_pthread/scoreboard.h Index: scoreboard.h =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/scoreboard.h,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -u -r1.3 -r1.4 --- scoreboard.h 1999/07/09 20:40:09 1.3 +++ scoreboard.h 1999/07/16 05:30:29 1.4 @@ -70,6 +70,8 @@ #endif /* TPF */ #endif +#include "mpm_default.h" /* For HARD_.*_LIMIT */ + /* Scoreboard info on a process is, for now, kept very brief --- * just status value and pid (the latter so that the caretaker process * can properly update the scoreboard when a process dies). We may want 1.1 apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpm_default.h Index: mpm_default.h =================================================================== /* ==================================================================== * Copyright (c) 1995-1999 The Apache Group. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. All advertising materials mentioning features or use of this * software must display the following acknowledgment: * "This product includes software developed by the Apache Group * for use in the Apache HTTP server project (http://www.apache.org/)." * * 4. The names "Apache Server" and "Apache Group" must not be used to * endorse or promote products derived from this software without * prior written permission. For written permission, please contact * [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * 6. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the Apache Group * for use in the Apache HTTP server project (http://www.apache.org/)." * * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Group and was originally based * on public domain software written at the National Center for * Supercomputing Applications, University of Illinois, Urbana-Champaign. * For more information on the Apache Group and the Apache HTTP server * project, please see <http://www.apache.org/>. * */ #ifndef APACHE_MPM_DEFAULT_H #define APACHE_MPM_DEFAULT_H /* Number of servers to spawn off by default --- also, if fewer than * this free when the caretaker checks, it will spawn more. */ #ifndef DEFAULT_START_DAEMON #define DEFAULT_START_DAEMON 5 #endif /* Maximum number of *free* server processes --- more than this, and * they will die off. */ #ifndef DEFAULT_MAX_FREE_DAEMON #define DEFAULT_MAX_FREE_DAEMON 10 #endif /* Minimum --- fewer than this, and more will be created */ #ifndef DEFAULT_MIN_FREE_DAEMON #define DEFAULT_MIN_FREE_DAEMON 5 #endif /* Limit on the total --- clients will be locked out if more servers than * this are needed. It is intended solely to keep the server from crashing * when things get out of hand. * * We keep a hard maximum number of servers, for two reasons --- first off, * in case something goes seriously wrong, we want to stop the fork bomb * short of actually crashing the machine we're running on by filling some * kernel table. Secondly, it keeps the size of the scoreboard file small * enough that we can read the whole thing without worrying too much about * the overhead. */ #ifndef HARD_SERVER_LIMIT #define HARD_SERVER_LIMIT 8 #endif /* Limit on the threads per process. Clients will be locked out if more than * this * HARD_SERVER_LIMIT are needed. * * We keep this for one reason it keeps the size of the scoreboard file small * enough that we can read the whole thing without worrying too much about * the overhead. */ #ifndef HARD_THREAD_LIMIT #define HARD_THREAD_LIMIT 64 #endif #endif /* AP_MPM_DEFAULT_H */ 1.7 +6 -6 apache-2.0/mpm/src/modules/mpm/prefork/Makefile.tmpl Index: Makefile.tmpl =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/prefork/Makefile.tmpl,v retrieving revision 1.6 retrieving revision 1.7 diff -u -d -u -r1.6 -r1.7 --- Makefile.tmpl 1999/07/13 20:32:50 1.6 +++ Makefile.tmpl 1999/07/16 05:30:31 1.7 @@ -59,12 +59,12 @@ $(INCDIR)/ap_config.h $(INCDIR)/ap_mmn.h \ $(INCDIR)/ap_config_auto.h $(OSDIR)/os.h \ $(OSDIR)/os-inline.c $(INCDIR)/ap_ctype.h \ - $(INCDIR)/alloc.h $(INCDIR)/buff.h \ - $(INCDIR)/ap_iol.h $(INCDIR)/ap.h \ - $(INCDIR)/apr.h $(INCDIR)/util_uri.h \ + $(INCDIR)/hsregex.h $(INCDIR)/alloc.h \ + $(INCDIR)/buff.h $(INCDIR)/ap_iol.h \ + $(INCDIR)/ap.h $(INCDIR)/apr.h \ + $(INCDIR)/util_uri.h mpm_default.h \ $(INCDIR)/http_main.h $(INCDIR)/http_log.h \ $(INCDIR)/http_config.h $(INCDIR)/ap_hooks.h \ $(INCDIR)/http_core.h $(INCDIR)/http_connection.h \ - scoreboard.h $(INCDIR)/ap_mpm.h \ - $(OSDIR)/unixd.h $(OSDIR)/iol_socket.h \ - $(INCDIR)/ap_listen.h + scoreboard.h $(INCDIR)/ap_mpm.h $(OSDIR)/unixd.h \ + $(OSDIR)/iol_socket.h $(INCDIR)/ap_listen.h 1.12 +1 -0 apache-2.0/mpm/src/modules/mpm/prefork/prefork.c Index: prefork.c =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/prefork/prefork.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -d -u -r1.11 -r1.12 --- prefork.c 1999/07/13 20:32:50 1.11 +++ prefork.c 1999/07/16 05:30:31 1.12 @@ -88,6 +88,7 @@ #define CORE_PRIVATE #include "httpd.h" +#include "mpm_default.h" #include "http_main.h" #include "http_log.h" #include "http_config.h" 1.1 apache-2.0/mpm/src/modules/mpm/prefork/mpm_default.h Index: mpm_default.h =================================================================== /* ==================================================================== * Copyright (c) 1995-1999 The Apache Group. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. All advertising materials mentioning features or use of this * software must display the following acknowledgment: * "This product includes software developed by the Apache Group * for use in the Apache HTTP server project (http://www.apache.org/)." * * 4. The names "Apache Server" and "Apache Group" must not be used to * endorse or promote products derived from this software without * prior written permission. For written permission, please contact * [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * 6. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the Apache Group * for use in the Apache HTTP server project (http://www.apache.org/)." * * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Group and was originally based * on public domain software written at the National Center for * Supercomputing Applications, University of Illinois, Urbana-Champaign. * For more information on the Apache Group and the Apache HTTP server * project, please see <http://www.apache.org/>. * */ #ifndef APACHE_MPM_DEFAULT_H #define APACHE_MPM_DEFAULT_H /* Number of servers to spawn off by default --- also, if fewer than * this free when the caretaker checks, it will spawn more. */ #ifndef DEFAULT_START_DAEMON #define DEFAULT_START_DAEMON 5 #endif /* Maximum number of *free* server processes --- more than this, and * they will die off. */ #ifndef DEFAULT_MAX_FREE_DAEMON #define DEFAULT_MAX_FREE_DAEMON 10 #endif /* Minimum --- fewer than this, and more will be created */ #ifndef DEFAULT_MIN_FREE_DAEMON #define DEFAULT_MIN_FREE_DAEMON 5 #endif /* Limit on the total --- clients will be locked out if more servers than * this are needed. It is intended solely to keep the server from crashing * when things get out of hand. * * We keep a hard maximum number of servers, for two reasons --- first off, * in case something goes seriously wrong, we want to stop the fork bomb * short of actually crashing the machine we're running on by filling some * kernel table. Secondly, it keeps the size of the scoreboard file small * enough that we can read the whole thing without worrying too much about * the overhead. */ #ifndef HARD_SERVER_LIMIT #define HARD_SERVER_LIMIT 256 #endif #endif /* AP_MPM_DEFAULT_H */ 1.2 +1 -1 apache-2.0/mpm/src/modules/mpm/spmt_os2/Makefile.tmpl Index: Makefile.tmpl =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/spmt_os2/Makefile.tmpl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -d -u -r1.1 -r1.2 --- Makefile.tmpl 1999/07/11 14:49:05 1.1 +++ Makefile.tmpl 1999/07/16 05:30:33 1.2 @@ -58,4 +58,4 @@ $(INCDIR)/ap_hooks.h $(INCDIR)/http_core.h \ $(INCDIR)/http_connection.h scoreboard.h \ $(INCDIR)/ap_mpm.h $(INCDIR)/ap_listen.h \ - $(OSDIR)/iol_socket.h + $(OSDIR)/iol_socket.h mpm_default.h 1.4 +1 -0 apache-2.0/mpm/src/modules/mpm/spmt_os2/spmt_os2.c Index: spmt_os2.c =================================================================== RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/spmt_os2/spmt_os2.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -u -r1.3 -r1.4 --- spmt_os2.c 1999/07/13 09:31:59 1.3 +++ spmt_os2.c 1999/07/16 05:30:35 1.4 @@ -60,6 +60,7 @@ #define CORE_PRIVATE #include "httpd.h" +#include "mpm_default.h" #include "http_main.h" #include "http_log.h" #include "http_config.h" 1.1 apache-2.0/mpm/src/modules/mpm/spmt_os2/mpm_default.h Index: mpm_default.h =================================================================== /* ==================================================================== * Copyright (c) 1995-1999 The Apache Group. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: * * 1. Redistributions of source code must retain the above copyright * notice, this list of conditions and the following disclaimer. * * 2. Redistributions in binary form must reproduce the above copyright * notice, this list of conditions and the following disclaimer in * the documentation and/or other materials provided with the * distribution. * * 3. All advertising materials mentioning features or use of this * software must display the following acknowledgment: * "This product includes software developed by the Apache Group * for use in the Apache HTTP server project (http://www.apache.org/)." * * 4. The names "Apache Server" and "Apache Group" must not be used to * endorse or promote products derived from this software without * prior written permission. For written permission, please contact * [EMAIL PROTECTED] * * 5. Products derived from this software may not be called "Apache" * nor may "Apache" appear in their names without prior written * permission of the Apache Group. * * 6. Redistributions of any form whatsoever must retain the following * acknowledgment: * "This product includes software developed by the Apache Group * for use in the Apache HTTP server project (http://www.apache.org/)." * * THIS SOFTWARE IS PROVIDED BY THE APACHE GROUP ``AS IS'' AND ANY * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE APACHE GROUP OR * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED * OF THE POSSIBILITY OF SUCH DAMAGE. * ==================================================================== * * This software consists of voluntary contributions made by many * individuals on behalf of the Apache Group and was originally based * on public domain software written at the National Center for * Supercomputing Applications, University of Illinois, Urbana-Champaign. * For more information on the Apache Group and the Apache HTTP server * project, please see <http://www.apache.org/>. * */ #ifndef APACHE_MPM_DEFAULT_H #define APACHE_MPM_DEFAULT_H /* Number of servers to spawn off by default --- also, if fewer than * this free when the caretaker checks, it will spawn more. */ #ifndef DEFAULT_START_DAEMON #define DEFAULT_START_DAEMON 5 #endif /* Maximum number of *free* server processes --- more than this, and * they will die off. */ #ifndef DEFAULT_MAX_FREE_DAEMON #define DEFAULT_MAX_FREE_DAEMON 10 #endif /* Minimum --- fewer than this, and more will be created */ #ifndef DEFAULT_MIN_FREE_DAEMON #define DEFAULT_MIN_FREE_DAEMON 5 #endif /* Limit on the total --- clients will be locked out if more servers than * this are needed. It is intended solely to keep the server from crashing * when things get out of hand. * * We keep a hard maximum number of servers, for two reasons --- first off, * in case something goes seriously wrong, we want to stop the fork bomb * short of actually crashing the machine we're running on by filling some * kernel table. Secondly, it keeps the size of the scoreboard file small * enough that we can read the whole thing without worrying too much about * the overhead. */ #ifndef HARD_SERVER_LIMIT #define HARD_SERVER_LIMIT 256 #endif #endif /* AP_MPM_DEFAULT_H */