cvs commit: apache-1.3/src/ap ap_md5c.c
ronald 99/08/15 15:14:56 Modified:src/ap ap_md5c.c Log: Aarg: typo... Revision ChangesPath 1.32 +1 -1 apache-1.3/src/ap/ap_md5c.c Index: ap_md5c.c === RCS file: /home/cvs/apache-1.3/src/ap/ap_md5c.c,v retrieving revision 1.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- ap_md5c.c 1999/08/15 21:55:09 1.31 +++ ap_md5c.c 1999/08/15 22:14:55 1.32 @@ -527,7 +527,7 @@ * Now make the output string. We know our limitations, so we * can use the string routines without bounds checking. */ -ap_cpystrn(passwd, AP_MD5PW_ID, AP_MD5PW_ID + 1); +ap_cpystrn(passwd, AP_MD5PW_ID, AP_MD5PW_IDLEN + 1); ap_cpystrn(passwd + AP_MD5PW_IDLEN, (char *)sp, sl + 1); passwd[AP_MD5PW_IDLEN + sl] = '$'; passwd[AP_MD5PW_IDLEN + sl + 1] = '\0';
cvs commit: apache-2.0 emacs-style
ben 99/08/15 14:55:19 Modified:.emacs-style Log: Get case indent right. Revision ChangesPath 1.2 +1 -0 apache-2.0/emacs-style Index: emacs-style === RCS file: /export/home/cvs/apache-2.0/emacs-style,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- emacs-style 1999/08/01 15:20:53 1.1 +++ emacs-style 1999/08/15 21:55:19 1.2 @@ -5,5 +5,6 @@ (c-set-offset 'statement-block-intro' ++) (c-set-offset 'substatement' ++) (c-set-offset 'brace-list-intro' ++) + (c-set-offset 'statement-case-intro' ++) ))) (setq c++-mode-hook c-mode-hook)
cvs commit: apache-1.3/src/ap ap_md5c.c ap_sha1.c
ronald 99/08/15 14:55:10 Modified:src/ap ap_md5c.c ap_sha1.c Log: fix password hash generation (ap_cpystrn needs to be told to copy n+1 chars) Revision ChangesPath 1.31 +2 -2 apache-1.3/src/ap/ap_md5c.c Index: ap_md5c.c === RCS file: /home/cvs/apache-1.3/src/ap/ap_md5c.c,v retrieving revision 1.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- ap_md5c.c 1999/08/14 09:31:04 1.30 +++ ap_md5c.c 1999/08/15 21:55:09 1.31 @@ -527,8 +527,8 @@ * Now make the output string. We know our limitations, so we * can use the string routines without bounds checking. */ -ap_cpystrn(passwd, AP_MD5PW_ID, AP_MD5PW_IDLEN); -ap_cpystrn(passwd + AP_MD5PW_IDLEN, (char *)sp, sl); +ap_cpystrn(passwd, AP_MD5PW_ID, AP_MD5PW_ID + 1); +ap_cpystrn(passwd + AP_MD5PW_IDLEN, (char *)sp, sl + 1); passwd[AP_MD5PW_IDLEN + sl] = '$'; passwd[AP_MD5PW_IDLEN + sl + 1] = '\0'; 1.10 +1 -1 apache-1.3/src/ap/ap_sha1.c Index: ap_sha1.c === RCS file: /home/cvs/apache-1.3/src/ap/ap_sha1.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- ap_sha1.c 1999/08/14 08:35:46 1.9 +++ ap_sha1.c 1999/08/15 21:55:09 1.10 @@ -371,7 +371,7 @@ ap_SHA1Final(digest, &context); /* private marker. */ -ap_cpystrn(out, AP_SHA1PW_ID, AP_SHA1PW_IDLEN); +ap_cpystrn(out, AP_SHA1PW_ID, AP_SHA1PW_IDLEN + 1); /* SHA1 hash is always 20 chars */ l = ap_base64encode_binary(out + AP_SHA1PW_IDLEN, digest, sizeof(digest));
cvs commit: apache-1.3 STATUS
rse 99/08/15 07:38:33 Modified:.STATUS Log: Ok Roy, it build silently with the following configure step, installed correctly, started correctly, server a few pages correctly and also survived a little bit of continued restart hammering without problems. All under FreeBSD 3.1. CC="egcc" \ CFLAGS="-pipe -O2 -pedantic -Wall -Wshadow -Wpointer-arith -Wcast-align \ -Wmissing-prototypes -Wmissing-declarations -Wnested-externs -Winline" \ TARGET="apache" \ ./configure --with-layout=GNU --target=apache --prefix=/tmp/apache --enable-module=all --enable-shared=max So, here is at least my +1 for rolling the beast... Revision ChangesPath 1.743 +2 -1 apache-1.3/STATUS Index: STATUS === RCS file: /home/cvs/apache-1.3/STATUS,v retrieving revision 1.742 retrieving revision 1.743 diff -u -r1.742 -r1.743 --- STATUS1999/08/15 07:08:59 1.742 +++ STATUS1999/08/15 14:38:32 1.743 @@ -1,10 +1,11 @@ 1.3 STATUS: - Last modified at [$Date: 1999/08/15 07:08:59 $] + Last modified at [$Date: 1999/08/15 14:38:32 $] Release: 1.3.9-dev: COUNTDOWN started at 08/14 2:30am PDT Tarball planned for Sunday morning unless problems found. + Votes for rolling: Ralf +1 1.3.8: Not released. 1.3.7: Not released.
cvs commit: apache-2.0/mpm/htdocs hooks.html
ben 99/08/15 06:50:27 Added: mpm/htdocs hooks.html Log: First-cut docco for hook functions. Revision ChangesPath 1.1 apache-2.0/mpm/htdocs/hooks.html Index: hooks.html === Apache Hook Functions In general, a hook function is one that Apache will call at some point during the processing of a request. Modules can provide functions that are called, and specify when they get called in comparison to other modules. Creating a hook function In order to create a new hook, four things need to be done: Declare the hook function Use the DECLARE_HOOK macro, which needs to be given the name of the hook, the return type of the hook function and the arguments. For example, if the hook returns an int and takes a request_rec * and an int and is called "do_something", then declare it like this: DECLARE_HOOK(int,do_something,(request_rec *r,int n)) This should go in a header which modules will include if they want to use the hook. Create the hook structure Each source file that exports a hook has a private structure which is used to record the module functions that use the hook. This is declared as follows: HOOK_STRUCT( HOOK_LINK(do_something) ... ) Implement the hook caller The source file that exports the hook has to implement a function that will call the hook. There are currently three possible ways to do this. In all cases, the calling function is called ap_run_hookname(). Void hooks If the return value of a hook is void, then all the hooks are called, and the caller is implemented like this: IMPLEMENT_HOOK_VOID(do_something,(request_rec *r,int n),(r,n)) The second and third arguments are the dummy argument declaration and the dummy arguments as they will be used when calling the hook. In other words, this macro expands to something like this: void ap_run_do_something(request_rec *r,int n) { ... do_something(r,n); } Hooks that return a value If the hook returns a value, then it can either be run until the first hook that does something interesting, like so: IMPLEMENT_HOOK_RUN_FIRST(int,do_something,(request_rec *r,int n),(r,n),DECLINED) The first hook that doesn't return DECLINED stops the loop and its return value is returned from the hook caller. Note that DECLINED is the tradition Apache hook return meaning "I didn't do anything", but it can be whatever suits you. Alternatively, all hooks can be run until an error occurs. This boils down to permitting two return values, one of which means "I did something, and it was OK" and the other meaning "I did nothing". The first function that returns a value other than one of those two stops the loop, and its return is the return value. Declare these like so: IMPLEMENT_HOOK_RUN_ALL(int,do_something,(request_rec *r,int n),(r,n),OK,DECLINED) Again, OK and DECLINED are the traditional values. You can use what you want. Call the hook callers At appropriate moments in the code, call the hook caller, like so: int n,ret; request_rec *r; ret=ap_run_do_something(r,n); Hooking the hook A module that wants a hook to be called needs to do two things. Implement the hook function Include the appropriate header, and define a static function of the correct type: static int my_something_doer(request_rec *r,int n) { ... return OK; } Add a hook registering function During initialisation, Apache will call each modules hook registering function, which is included in the module structure: static void my_register_hooks() { ap_hook_do_something(my_something_doer,NULL,NULL,HOOK_MIDDLE); } mode MODULE_VAR_EXPORT my_module = { ... my_register_hooks /* register hooks */ }; Controlling hook calling order In the example above, we didn't use the three arguments in the hook registration function that control calling order. There are two mechanisms for doing this. The first, rather crude, method, allows us to specify roughly where the hook is run relative to other modules. The final argument control this. There are three possible values: HOOK_FIRST HOOK_MIDDLE HOOK_LAST All modules using any particular value may be run in any order relative to each other, but, of course, all modules using HOOK_FIRST will be run before HOOK_MIDDLE which are before HOOK_LAST. Modules that don't care when they are run should use HOOK_MIDDLE. (I spaced these out so people could do stuff like HOOK_FIRST-2 to get in slightly earlier, but is this wise? - Ben) Note that there are two more values, HOOK_REALLY_FIRST and HOOK_REALLY_LAST. These should only be used by
cvs commit: apache-2.0/mpm config.option
rse 99/08/15 04:08:25 Modified:mpm config.option Log: Cleanup config.option and add LinuxThreads entry.. Revision ChangesPath 1.3 +61 -14apache-2.0/mpm/config.option Index: config.option === RCS file: /home/cvs/apache-2.0/mpm/config.option,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- config.option 1999/08/12 11:35:05 1.2 +++ config.option 1999/08/15 11:08:25 1.3 @@ -1,6 +1,6 @@ ## ## config.option -- APACI Pre-defined Configuration Options -## Hints: options can be loaded with APACI's --with-option=ID +## Hint: options can be loaded with APACI's --with-option=ID ## # Common standard options @@ -14,18 +14,62 @@ --disable-module=cgi -# prefork MPM -# (the good old Apache 1.3 preforking process model) +## +## prefork MPM +## (the good old Apache 1.3 preforking process model) +## + --set-rule=MPM_METHOD:prefork +## +## Hybrid Variants +## +## Assumptions for GNU Pth based variants: +## - Pth source tree was extracted to apache-mpm/pth/ +## - Pth was configured with ``--enable-pthread --enable-syscall-soft'' +## - Pth was already build (but needs not to be installed) +## Assumptions for FreeBSD uthread based variants: +## - FreeBSD uthread is available in libc_r and cc knows ``-pthread'' +## - RSE's poll(2) emulation library stays in apache-apr/poll/ +## - RSE's poll(2) emulation library was already build +## + +## +## pthread MPM +## + +# pthread MPM with GNU Pth + +CFLAGS='-I\$(SRCDIR)/../../pth -DPTHREAD_EVERYWHERE -DNO_SERIALIZED_ACCEPT' +LDFLAGS='-L\$(SRCDIR)/../../pth/.libs' +LIBS=-lpthread +--set-rule=MPM_METHOD:mpmt_pthread + + +# pthread MPM with FreeBSD uthread + +CC=cc +CFLAGS='-pthread -I\$(SRCDIR)/../../../apache-apr/poll -DNO_SERIALIZED_ACCEPT' +LDFLAGS='-pthread -L\$(SRCDIR)/../../../apache-apr/poll' +LIBS=-lpoll +--set-rule=MPM_METHOD:mpmt_pthread + + +# pthread MPM with LinuxThreads + +CC=cc +CFLAGS='-pthread' +LDFLAGS='-pthread' +--set-rule=MPM_METHOD:mpmt_pthread + + +## +## dexter MPM +## + # dexter MPM with GNU Pth -# (a portable variant of the hybrid (preforking/prethreading) model) -# assumptions: -# - Pth source tree was extracted to apache-mpm/pth/ -# - Pth was configured with ``--enable-pthread --enable-syscall-soft'' -# - Pth was already build (but has not to be installed) CFLAGS='-I\$(SRCDIR)/../../pth -DPTHREAD_EVERYWHERE -DNO_SERIALIZED_ACCEPT' LDFLAGS='-L\$(SRCDIR)/../../pth/.libs' @@ -33,17 +77,20 @@ --set-rule=MPM_METHOD:dexter -# dexter MPM with FreeBSD's uthread and RSE's poll emulation -# (a FreeBSD specific variant of the hybrid (preforking/prethreading) model) -# assumptions: -# - FreeBSD uthread is available in libc_r and cc knows ``-pthread'' -# - RSE's poll(2) emulation library stays in apache-apr/poll/ -# - RSE's poll(2) emulation library was already build +# dexter MPM with FreeBSD uthread CC=cc CFLAGS='-pthread -I\$(SRCDIR)/../../../apache-apr/poll -DNO_SERIALIZED_ACCEPT' LDFLAGS='-pthread -L\$(SRCDIR)/../../../apache-apr/poll' LIBS=-lpoll +--set-rule=MPM_METHOD:dexter + + +# dexter MPM with LinuxThreads + +CC=cc +CFLAGS='-pthread' +LDFLAGS='-pthread' --set-rule=MPM_METHOD:dexter
cvs commit: apache-2.0/mpm/conf httpd.conf-dist
rse 99/08/15 04:04:56 Modified:mpm/conf httpd.conf-dist Log: Add a sample entry for pthread MPM... Revision ChangesPath 1.7 +19 -3 apache-2.0/mpm/conf/httpd.conf-dist Index: httpd.conf-dist === RCS file: /home/cvs/apache-2.0/mpm/conf/httpd.conf-dist,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- httpd.conf-dist 1999/08/13 06:54:05 1.6 +++ httpd.conf-dist 1999/08/15 11:04:55 1.7 @@ -123,9 +123,9 @@ # KeepAliveTimeout 15 -# -# Server-pool size regulation -# +## +## Server-Pool Size Regulation (MPM specific) +## # prefork MPM # StartServers . number of server processes to start @@ -138,6 +138,22 @@ MinSpareServers 5 MaxSpareServers 10 MaxClients 20 +MaxRequestsPerChild 0 + + +# pthread MPM +# StartServers . initial number of server processes to start +# MaxClients ... maximum number of server processes allowed to start +# MinSpareThreads .. minimum number of worker threads which are kept spare +# MaxSpareThreads .. maximum number of worker threads which are kept spare +# ThreadsPerChild .. constant number of worker threads in each server process +# MaxRequestsPerChild .. maximum number of requests a server process serves + +StartServers 5 +MaxClients 8 +MinSpareThreads 5 +MaxSpareThreads 10 +ThreadsPerChild 20 MaxRequestsPerChild 0
cvs commit: apache-2.0/mpm/src/modules/mpm/mpmt_pthread acceptlock.h
rse 99/08/15 04:03:42 Modified:mpm/src/modules/mpm/mpmt_pthread acceptlock.h Log: Avoid warning Revision ChangesPath 1.3 +2 -0 apache-2.0/mpm/src/modules/mpm/mpmt_pthread/acceptlock.h Index: acceptlock.h === RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/acceptlock.h,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- acceptlock.h 1999/06/27 03:45:15 1.2 +++ acceptlock.h 1999/08/15 11:03:42 1.3 @@ -118,7 +118,9 @@ #if !defined(MULTITHREAD) /* Multithreaded systems don't complete between processes for * the sockets. */ +#ifndef NO_SERIALIZED_ACCEPT #define NO_SERIALIZED_ACCEPT +#endif #define accept_mutex_child_init(x) #define accept_mutex_init(x, y) #define accept_mutex_on(x)
cvs commit: apache-2.0/mpm/src/modules/mpm/mpmt_pthread mpmt_pthread.c
rse 99/08/15 04:02:45 Modified:mpm/src/modules/mpm/dexter dexter.c mpm/src/modules/mpm/mpmt_pthread mpmt_pthread.c Log: Unbreak dexter and pthread MPM after Ben's latest hook changes. Revision ChangesPath 1.26 +0 -3 apache-2.0/mpm/src/modules/mpm/dexter/dexter.c Index: dexter.c === RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/dexter/dexter.c,v retrieving revision 1.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- dexter.c 1999/08/13 22:30:57 1.25 +++ dexter.c 1999/08/15 11:02:43 1.26 @@ -1621,15 +1621,12 @@ module MODULE_VAR_EXPORT mpm_dexter_module = { STANDARD20_MODULE_STUFF, -NULL,/* child_init */ NULL,/* create per-directory config structure */ NULL,/* merge per-directory config structures */ NULL,/* create per-server config structure */ NULL,/* merge per-server config structures */ dexter_cmds, /* command table */ NULL,/* handlers */ -NULL,/* check auth */ -NULL,/* check access */ dexter_hooks /* register_hooks */ }; 1.28 +0 -3 apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.c Index: mpmt_pthread.c === RCS file: /home/cvs/apache-2.0/mpm/src/modules/mpm/mpmt_pthread/mpmt_pthread.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- mpmt_pthread.c1999/08/13 21:50:55 1.27 +++ mpmt_pthread.c1999/08/15 11:02:44 1.28 @@ -1689,15 +1689,12 @@ module MODULE_VAR_EXPORT mpm_mpmt_pthread_module = { STANDARD20_MODULE_STUFF, -NULL,/* child_init */ NULL,/* create per-directory config structure */ NULL,/* merge per-directory config structures */ NULL,/* create per-server config structure */ NULL,/* merge per-server config structures */ mpmt_pthread_cmds, /* command table */ NULL,/* handlers */ -NULL,/* check auth */ -NULL,/* check access */ mpmt_pthread_hooks /* register_hooks */ };
cvs commit: apachegroup-site projects.html
fielding99/08/15 00:11:12 Modified:.projects.html Log: Fix link to server project. Submitted by: Fred Curtis <[EMAIL PROTECTED]> Reviewed by: Roy Fielding Revision ChangesPath 1.8 +1 -1 apachegroup-site/projects.html Index: projects.html === RCS file: /home/cvs/apachegroup-site/projects.html,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- projects.html 1999/06/29 10:17:37 1.7 +++ projects.html 1999/08/15 07:11:11 1.8 @@ -56,7 +56,7 @@ projects. -Apache HTTP Server +Apache HTTP Server The Apache HTTP Server Project is an effort to develop and maintain an
cvs commit: apache-1.3 STATUS
fielding99/08/15 00:09:01 Modified:.STATUS Log: hello? anybody home? Revision ChangesPath 1.742 +11 -1 apache-1.3/STATUS Index: STATUS === RCS file: /home/cvs/apache-1.3/STATUS,v retrieving revision 1.741 retrieving revision 1.742 diff -u -r1.741 -r1.742 --- STATUS1999/08/14 09:36:34 1.741 +++ STATUS1999/08/15 07:08:59 1.742 @@ -1,5 +1,5 @@ 1.3 STATUS: - Last modified at [$Date: 1999/08/14 09:36:34 $] + Last modified at [$Date: 1999/08/15 07:08:59 $] Release: @@ -22,6 +22,12 @@ RELEASE NON-SHOWSTOPPERS BUT WOULD BE REAL NICE TO WRAP THESE UP: +* HPUX binary build failure due to the fact that it is building + libstandard.a and adding .so objects to the libstandard.a starting + with mod_vhost_alias.so. +Message-ID: <[EMAIL PROTECTED]> + Status: Randy needs someone familiar with HPUX to look at it. + * long pathnames with many components and no AllowOverride None Workaround is to define with AllowOverride None, which is something all sites should do in any case. @@ -36,6 +42,10 @@ Available Patches: + +* David Harris's [patch] make does not propagate src/support errors +Message-ID: <[EMAIL PROTECTED]> + Status: * Paul Reder's patch to fix Allow/Deny (.htaccess parsing) in regex processing.
cvs commit: apache-1.3/htdocs/manual/mod core.html
fielding99/08/14 23:55:49 Modified:htdocs/manual/mod core.html Log: The current documentation on the Rlimit{CPU,MEM,Nproc} directives uses the wording "for all processes", which leads one to believe that the limit applies to all of the Apache children processes. However, this is not the case. The resource limits are applied in ap_call_exec() which is only called by mod_cgi and mod_include. Submitted by: David Harris <[EMAIL PROTECTED]> Reviewed by: Roy Fielding Revision ChangesPath 1.155 +15 -0 apache-1.3/htdocs/manual/mod/core.html Index: core.html === RCS file: /home/cvs/apache-1.3/htdocs/manual/mod/core.html,v retrieving revision 1.154 retrieving revision 1.155 diff -u -r1.154 -r1.155 --- core.html 1999/07/29 18:17:43 1.154 +++ core.html 1999/08/15 06:55:48 1.155 @@ -2460,6 +2460,11 @@ configuration. Raising the maximum resource limit requires that the server is running as root, or in the initial startup phase. +This applies to processes forked off from Apache children servicing requests, +not the Apache children themselves. This includes CGI scripts and SSI +exec commands, but not any processes forked off from the Apache parent +such as piped logs. + CPU resource limits are expressed in seconds per process. See also RLimitMEM or @@ -2498,6 +2503,11 @@ configuration. Raising the maximum resource limit requires that the server is running as root, or in the initial startup phase. +This applies to processes forked off from Apache children servicing requests, +not the Apache children themselves. This includes CGI scripts and SSI +exec commands, but not any processes forked off from the Apache parent +such as piped logs. + Memory resource limits are expressed in bytes per process. See also RLimitCPU or @@ -2535,6 +2545,11 @@ that the limit should be set to the maximum allowed by the operating system configuration. Raising the maximum resource limit requires that the server is running as root, or in the initial startup phase. + +This applies to processes forked off from Apache children servicing requests, +not the Apache children themselves. This includes CGI scripts and SSI +exec commands, but not any processes forked off from the Apache parent +such as piped logs. Process limits control the number of processes per user.
cvs commit: apache-2.0/mpm/src/modules/standard mod_alias.c mod_auth.c mod_echo.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_setenvif.c mod_userdir.c
ben 99/08/14 17:15:47 Modified:mpm/src/main http_core.c mpm/src/modules/standard mod_alias.c mod_auth.c mod_echo.c mod_env.c mod_log_config.c mod_mime.c mod_negotiation.c mod_setenvif.c mod_userdir.c Log: Fix formatting. Revision ChangesPath 1.21 +2 -2 apache-2.0/mpm/src/main/http_core.c Index: http_core.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_core.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- http_core.c 1999/08/15 00:11:12 1.20 +++ http_core.c 1999/08/15 00:15:43 1.21 @@ -2661,7 +2661,7 @@ { return DEFAULT_HTTP_PORT; } static void register_hooks() -{ +{ ap_hook_translate_name(core_translate,NULL,NULL,HOOK_REALLY_LAST); ap_hook_process_connection(ap_process_http_connection,NULL,NULL, HOOK_REALLY_LAST); @@ -2671,7 +2671,7 @@ /* FIXME: I suspect we can eliminate the need for these - Ben */ ap_hook_type_checker(do_nothing,NULL,NULL,HOOK_REALLY_LAST); ap_hook_access_checker(do_nothing,NULL,NULL,HOOK_REALLY_LAST); -} +} API_VAR_EXPORT module core_module = { STANDARD20_MODULE_STUFF, 1.17 +2 -2 apache-2.0/mpm/src/modules/standard/mod_alias.c Index: mod_alias.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_alias.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- mod_alias.c 1999/08/15 00:11:15 1.16 +++ mod_alias.c 1999/08/15 00:15:43 1.17 @@ -396,12 +396,12 @@ } static void register_hooks() -{ +{ static const char * const aszPre[]={ "mod_userdir.c",NULL }; ap_hook_translate_name(translate_alias_redir,aszPre,NULL,HOOK_MIDDLE); ap_hook_fixups(fixup_redir,NULL,NULL,HOOK_MIDDLE); -} +} module MODULE_VAR_EXPORT alias_module = { 1.17 +2 -2 apache-2.0/mpm/src/modules/standard/mod_auth.c Index: mod_auth.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_auth.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- mod_auth.c1999/08/15 00:11:18 1.16 +++ mod_auth.c1999/08/15 00:15:44 1.17 @@ -310,10 +310,10 @@ } static void register_hooks(void) -{ +{ ap_hook_check_user_id(authenticate_basic_user,NULL,NULL,HOOK_MIDDLE); ap_hook_auth_checker(check_user_access,NULL,NULL,HOOK_MIDDLE); -} +} module MODULE_VAR_EXPORT auth_module = { 1.10 +2 -2 apache-2.0/mpm/src/modules/standard/mod_echo.c Index: mod_echo.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_echo.c,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- mod_echo.c1999/08/15 00:11:18 1.9 +++ mod_echo.c1999/08/15 00:15:44 1.10 @@ -57,9 +57,9 @@ }; static void register_hooks() -{ +{ ap_hook_process_connection(process_echo_connection,NULL,NULL,HOOK_MIDDLE); -} +} API_VAR_EXPORT module echo_module = { STANDARD20_MODULE_STUFF, 1.17 +2 -2 apache-2.0/mpm/src/modules/standard/mod_env.c Index: mod_env.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_env.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- mod_env.c 1999/08/15 00:11:18 1.16 +++ mod_env.c 1999/08/15 00:15:44 1.17 @@ -248,9 +248,9 @@ } static void register_hooks() -{ +{ ap_hook_fixups(fixup_env_module,NULL,NULL,HOOK_MIDDLE); -} +} module MODULE_VAR_EXPORT env_module = 1.17 +2 -2 apache-2.0/mpm/src/modules/standard/mod_log_config.c Index: mod_log_config.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_log_config.c,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- mod_log_config.c 1999/08/15 00:11:19 1.16 +++ mod_log_config.c 1999/08/15 00:15:44 1.17 @@ -1115,10 +1115,10 @@ #endif static void register_hooks() -{ +{ ap_hook_open_logs(init_config_log,NULL,NULL,HOOK_MIDDLE); ap_hook_log_transaction(multi_log_transaction,NULL,NULL,HOOK_MIDDLE); -} +} module MODULE_VAR_EXPORT config_log_module = { 1.15 +2 -2 apache-2.0/mpm/src/modules/
cvs commit: apache-2.0/mpm/src/modules/standard mod_access.c mod_actions.c mod_alias.c mod_asis.c mod_auth.c mod_autoindex.c mod_dir.c mod_echo.c mod_env.c mod_imap.c mod_log_config.c mod_mime.c mod_negotiation.c mod_setenvif.c mod_userdir.c
ben 99/08/14 17:11:23 Modified:mpm/src/include http_config.h mpm/src/main http_config.c http_core.c mpm/src/modules/mpm/prefork prefork.c mpm/src/modules/standard mod_access.c mod_actions.c mod_alias.c mod_asis.c mod_auth.c mod_autoindex.c mod_dir.c mod_echo.c mod_env.c mod_imap.c mod_log_config.c mod_mime.c mod_negotiation.c mod_setenvif.c mod_userdir.c Log: Child initializer hook. Revision ChangesPath 1.17 +1 -2 apache-2.0/mpm/src/include/http_config.h Index: http_config.h === RCS file: /export/home/cvs/apache-2.0/mpm/src/include/http_config.h,v retrieving revision 1.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- http_config.h 1999/08/15 00:01:15 1.16 +++ http_config.h 1999/08/15 00:11:11 1.17 @@ -211,8 +211,6 @@ * (see also mod_so). */ -void (*child_init)(pool *pchild, server_rec *); - void *(*create_dir_config) (pool *p, char *dir); void *(*merge_dir_config) (pool *p, void *base_conf, void *new_conf); void *(*create_server_config) (pool *p, server_rec *s); @@ -373,6 +371,7 @@ (pool *pconf,pool *plog,pool *ptemp,server_rec *s)) DECLARE_HOOK(void,open_logs, (pool *pconf,pool *plog,pool *ptemp,server_rec *s)) +DECLARE_HOOK(void,child_init,(pool *pchild, server_rec *s)) #ifdef __cplusplus } 1.22 +3 -5 apache-2.0/mpm/src/main/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_config.c,v retrieving revision 1.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- http_config.c 1999/08/15 00:03:53 1.21 +++ http_config.c 1999/08/15 00:11:11 1.22 @@ -86,6 +86,7 @@ HOOK_LINK(pre_config) HOOK_LINK(post_config) HOOK_LINK(open_logs) + HOOK_LINK(child_init) ) IMPLEMENT_HOOK_RUN_ALL(int,header_parser,(request_rec *r),(r),OK,DECLINED) @@ -97,6 +98,7 @@ IMPLEMENT_HOOK_VOID(open_logs, (pool *pconf, pool *plog, pool *ptemp, server_rec *s), (pconf,plog,ptemp,s)) +IMPLEMENT_HOOK_VOID(child_init,(pool *pchild, server_rec *s),(pchild,s)) DEF_Explain @@ -1312,14 +1314,10 @@ void ap_child_init_hook(pool *pchild, server_rec *s) { -module *m; - /* TODO: uh this seems ugly, is there a better way? */ ap_child_init_alloc(); -for (m = top_module; m; m = m->next) - if (m->child_init) - (*m->child_init) (pchild, s); +ap_run_child_init(pchild,s); } / 1.20 +0 -1 apache-2.0/mpm/src/main/http_core.c Index: http_core.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_core.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- http_core.c 1999/08/15 00:01:18 1.19 +++ http_core.c 1999/08/15 00:11:12 1.20 @@ -2675,7 +2675,6 @@ API_VAR_EXPORT module core_module = { STANDARD20_MODULE_STUFF, -NULL,/* child_init */ create_core_dir_config, /* create per-directory config structure */ merge_core_dir_configs, /* merge per-directory config structures */ create_core_server_config, /* create per-server config structure */ 1.30 +0 -1 apache-2.0/mpm/src/modules/mpm/prefork/prefork.c Index: prefork.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/mpm/prefork/prefork.c,v retrieving revision 1.29 retrieving revision 1.30 diff -u -r1.29 -r1.30 --- prefork.c 1999/08/15 00:01:23 1.29 +++ prefork.c 1999/08/15 00:11:13 1.30 @@ -2977,7 +2977,6 @@ module MODULE_VAR_EXPORT mpm_prefork_module = { STANDARD20_MODULE_STUFF, -NULL,/* child_init */ NULL,/* create per-directory config structure */ NULL,/* merge per-directory config structures */ NULL,/* create per-server config structure */ 1.15 +0 -1 apache-2.0/mpm/src/modules/standard/mod_access.c Index: mod_access.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/modules/standard/mod_access.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- mod_access.c 1999/08/15 00:01:24
cvs commit: apache-2.0/mpm/src/main http_config.c
ben 99/08/14 17:03:53 Modified:mpm/src/main http_config.c Log: Remove code that is now dead as a result of hooks. Revision ChangesPath 1.21 +0 -104apache-2.0/mpm/src/main/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_config.c,v retrieving revision 1.20 retrieving revision 1.21 diff -u -r1.20 -r1.21 --- http_config.c 1999/08/15 00:01:17 1.20 +++ http_config.c 1999/08/15 00:03:53 1.21 @@ -241,109 +241,6 @@ return create_empty_config(p); } -#ifdef EXPLAIN - -struct { -int offset; -char *method; -} aMethods[] = - -{ -#define m(meth) { XtOffsetOf(module,meth),#meth } -{ -1, "?" }, -#undef m -}; - -char *ShowMethod(module *modp, int offset) -{ -int n; -static char buf[200]; - -for (n = 0; aMethods[n].offset >= 0; ++n) - if (aMethods[n].offset == offset) - break; -ap_snprintf(buf, sizeof(buf), "%s:%s", modp->name, aMethods[n].method); -return buf; -} -#else -#define ShowMethod(modp,offset) -#endif - -/ - * - * Dispatch through the modules to find handlers for various phases - * of request handling. These are invoked by http_request.c to actually - * do the dirty work of slogging through the module structures. - */ - -/* - * Optimized run_method routines. The observation here is that many modules - * have NULL for most of the methods. So we build optimized lists of - * everything. If you think about it, this is really just like a sparse array - * implementation to avoid scanning the zero entries. - */ -static const int method_offsets[] = -{ -}; -#define NMETHODS (sizeof (method_offsets)/sizeof (method_offsets[0])) - -static struct { -} offsets_into_method_ptrs; - -/* - * This is just one big array of method_ptrs. It's constructed such that, - * for example, method_ptrs[ offsets_into_method_ptrs.logger ] is the first - * logger function. You go one-by-one from there until you hit a NULL. - * This structure was designed to hopefully maximize cache-coolness. - */ -static handler_func *method_ptrs; - -/* routine to reconstruct all these shortcuts... called after every - * add_module. - * XXX: this breaks if modules dink with their methods pointers - */ -static void build_method_shortcuts(void) -{ -module *modp; -int how_many_ptrs; -int i; -int next_ptr; -handler_func fp; - -if (method_ptrs) { - /* free up any previous set of method_ptrs */ - free(method_ptrs); -} - -/* first we count how many functions we have */ -how_many_ptrs = 0; -for (modp = top_module; modp; modp = modp->next) { - for (i = 0; i < NMETHODS; ++i) { - if (*(handler_func *) (method_offsets[i] + (char *) modp)) { - ++how_many_ptrs; - } - } -} -method_ptrs = malloc((how_many_ptrs + NMETHODS) * sizeof(handler_func)); -if (method_ptrs == NULL) { - fprintf(stderr, "Ouch! Out of memory in build_method_shortcuts()!\n"); -} -next_ptr = 0; -for (i = 0; i < NMETHODS; ++i) { - /* XXX: This is an itsy bit presumptuous about the alignment - * constraints on offsets_into_method_ptrs. I can't remember if - * ANSI says this has to be true... -djg */ - ((int *) &offsets_into_method_ptrs)[i] = next_ptr; - for (modp = top_module; modp; modp = modp->next) { - fp = *(handler_func *) (method_offsets[i] + (char *) modp); - if (fp) { - method_ptrs[next_ptr++] = fp; - } - } - method_ptrs[next_ptr++] = NULL; -} -} - /* * For speed/efficiency we generate a compact list of all the handlers * and wildcard handlers. This means we won't have to scan the entire @@ -1410,7 +1307,6 @@ void ap_post_config_hook(pool *pconf, pool *plog, pool *ptemp, server_rec *s) { ap_run_post_config(pconf,plog,ptemp,s); -build_method_shortcuts(); init_handlers(pconf); }
cvs commit: apache-2.0/mpm/src/modules/standard mod_access.c mod_actions.c mod_alias.c mod_asis.c mod_auth.c mod_autoindex.c mod_dir.c mod_echo.c mod_env.c mod_imap.c mod_log_config.c mod_mime.c mod_negotiation.c mod_setenvif.c mod_userdir.c
ben 99/08/14 17:01:31 Modified:mpm/src/include http_config.h http_request.h mpm/src/main http_config.c http_core.c http_request.c mpm/src/modules/mpm/prefork prefork.c mpm/src/modules/standard mod_access.c mod_actions.c mod_alias.c mod_asis.c mod_auth.c mod_autoindex.c mod_dir.c mod_echo.c mod_env.c mod_imap.c mod_log_config.c mod_mime.c mod_negotiation.c mod_setenvif.c mod_userdir.c Log: Auth checker hook Revision ChangesPath 1.16 +0 -2 apache-2.0/mpm/src/include/http_config.h Index: http_config.h === RCS file: /export/home/cvs/apache-2.0/mpm/src/include/http_config.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- http_config.h 1999/08/14 23:46:37 1.15 +++ http_config.h 1999/08/15 00:01:15 1.16 @@ -235,7 +235,6 @@ * sets content_type, _encoding and _language fields. */ -int (*auth_checker) (request_rec *); void (*register_hooks) (void); } module; @@ -356,7 +355,6 @@ int ap_translate_name(request_rec *); int ap_check_user_id(request_rec *); /* obtain valid username from client auth */ -int ap_check_auth(request_rec *);/* check (validated) user is authorized here */ int ap_invoke_handler(request_rec *); /* for mod_perl */ 1.7 +1 -0 apache-2.0/mpm/src/include/http_request.h Index: http_request.h === RCS file: /export/home/cvs/apache-2.0/mpm/src/include/http_request.h,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- http_request.h1999/08/14 23:46:38 1.6 +++ http_request.h1999/08/15 00:01:16 1.7 @@ -118,6 +118,7 @@ DECLARE_HOOK(int,fixups,(request_rec *)) DECLARE_HOOK(int,type_checker,(request_rec *)) DECLARE_HOOK(int,access_checker,(request_rec *)) +DECLARE_HOOK(int,auth_checker,(request_rec *)) #ifdef __cplusplus } 1.20 +0 -34 apache-2.0/mpm/src/main/http_config.c Index: http_config.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_config.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- http_config.c 1999/08/14 23:46:39 1.19 +++ http_config.c 1999/08/15 00:01:17 1.20 @@ -250,7 +250,6 @@ { #define m(meth) { XtOffsetOf(module,meth),#meth } -m(auth_checker), { -1, "?" }, #undef m }; @@ -285,12 +284,10 @@ */ static const int method_offsets[] = { -XtOffsetOf(module, auth_checker), }; #define NMETHODS (sizeof (method_offsets)/sizeof (method_offsets[0])) static struct { -int auth_checker; } offsets_into_method_ptrs; /* @@ -345,37 +342,6 @@ } method_ptrs[next_ptr++] = NULL; } -} - - -static int run_method(request_rec *r, int offset, int run_all) -{ -int i; - -for (i = offset; method_ptrs[i]; ++i) { - handler_func mod_handler = method_ptrs[i]; - - if (mod_handler) { - int result; - - result = (*mod_handler) (r); - - if (result != DECLINED && (!run_all || result != OK)) - return result; - } -} - -return run_all ? OK : DECLINED; -} - -/* Auth stuff --- anything that defines one of these will presumably - * want to define something for the other. Note that check_auth is - * separate from check_access to make catching some config errors easier. - */ - -int ap_check_auth(request_rec *r) -{ -return run_method(r, offsets_into_method_ptrs.auth_checker, 0); } /* 1.19 +0 -1 apache-2.0/mpm/src/main/http_core.c Index: http_core.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_core.c,v retrieving revision 1.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- http_core.c 1999/08/14 23:46:40 1.18 +++ http_core.c 1999/08/15 00:01:18 1.19 @@ -2682,6 +2682,5 @@ merge_core_server_configs, /* merge per-server config structures */ core_cmds, /* command table */ core_handlers, /* handlers */ -NULL,/* check auth */ register_hooks /* register hooks */ }; 1.17 +8 -6 apache-2.0/mpm/src/main/http_request.c Index: http_request.c === RCS file: /export/home/cvs/apache-2.0/mpm/src/main/http_request.c,v retrieving revision 1.16 retrieving revisi