Loading CHANGES +5 −0 Original line number Diff line number Diff line Changes with Apache 2.0b1 *) Support for typedsafe optional functions - that is functions exported by optional modules, which, therefore, may or may not be present, depending on configuration. See the experimental modules mod_optional_fn_{ex,im}port for sample code. [Ben Laurie] *) filters can now report an HTTP error to the server. This is done by sending a brigade where the first bucket is an error_bucket. This bucket is a simple bucket that stores an HTTP error and Loading include/http_config.h +8 −0 Original line number Diff line number Diff line Loading @@ -1001,6 +1001,14 @@ AP_DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s)) */ AP_DECLARE_HOOK(int,handler,(request_rec *)) /** * Retrieve the optional functions for each module. * This is run immediately before the server starts. Optional functions should * be registered during the hook registration phase. * @deffunc void ap_run_optional_fn_retrieve(void) */ AP_DECLARE_HOOK(void,optional_fn_retrieve,(void)) #ifdef __cplusplus } #endif Loading modules/experimental/config.m4 +2 −0 Original line number Diff line number Diff line Loading @@ -8,5 +8,7 @@ APACHE_MODULE(ext_filter, external filter module, , , no) APACHE_MODULE(case_filter, example uppercase conversion filter, , , no) APACHE_MODULE(generic_hook_export, example hook exporter, , , no) APACHE_MODULE(generic_hook_import, example hook importer, , , no) APACHE_MODULE(optional_fn_import, example optional function importer, , , no) APACHE_MODULE(optional_fn_export, example optional function exporter, , , no) APACHE_MODPATH_FINISH modules/experimental/mod_optional_fn_export.c 0 → 100644 +86 −0 Original line number Diff line number Diff line /* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ #include "httpd.h" #include "http_config.h" #include "http_log.h" #include "mod_optional_fn_export.h" /* The alert will note a strange mirror-image style resemblance to * mod_generic_hook_import.c. Yes, I _did_ mean import. Think about it. */ static int TestOptionalFn(const char *szStr) { ap_log_error(APLOG_MARK,APLOG_ERR,OK,NULL, "Optional function test said: %s",szStr); return OK; } static void ExportRegisterHooks(apr_pool_t *p) { APR_REGISTER_OPTIONAL_FN(TestOptionalFn); } module optional_fn_export_module= { STANDARD20_MODULE_STUFF, NULL, NULL, NULL, NULL, NULL, ExportRegisterHooks }; modules/experimental/mod_optional_fn_export.h 0 → 100644 +3 −0 Original line number Diff line number Diff line #include "apr_optional.h" APR_DECLARE_OPTIONAL_FN(int,TestOptionalFn,(const char *)) Loading
CHANGES +5 −0 Original line number Diff line number Diff line Changes with Apache 2.0b1 *) Support for typedsafe optional functions - that is functions exported by optional modules, which, therefore, may or may not be present, depending on configuration. See the experimental modules mod_optional_fn_{ex,im}port for sample code. [Ben Laurie] *) filters can now report an HTTP error to the server. This is done by sending a brigade where the first bucket is an error_bucket. This bucket is a simple bucket that stores an HTTP error and Loading
include/http_config.h +8 −0 Original line number Diff line number Diff line Loading @@ -1001,6 +1001,14 @@ AP_DECLARE_HOOK(void,child_init,(apr_pool_t *pchild, server_rec *s)) */ AP_DECLARE_HOOK(int,handler,(request_rec *)) /** * Retrieve the optional functions for each module. * This is run immediately before the server starts. Optional functions should * be registered during the hook registration phase. * @deffunc void ap_run_optional_fn_retrieve(void) */ AP_DECLARE_HOOK(void,optional_fn_retrieve,(void)) #ifdef __cplusplus } #endif Loading
modules/experimental/config.m4 +2 −0 Original line number Diff line number Diff line Loading @@ -8,5 +8,7 @@ APACHE_MODULE(ext_filter, external filter module, , , no) APACHE_MODULE(case_filter, example uppercase conversion filter, , , no) APACHE_MODULE(generic_hook_export, example hook exporter, , , no) APACHE_MODULE(generic_hook_import, example hook importer, , , no) APACHE_MODULE(optional_fn_import, example optional function importer, , , no) APACHE_MODULE(optional_fn_export, example optional function exporter, , , no) APACHE_MODPATH_FINISH
modules/experimental/mod_optional_fn_export.c 0 → 100644 +86 −0 Original line number Diff line number Diff line /* ==================================================================== * The Apache Software License, Version 1.1 * * Copyright (c) 2001 The Apache Software Foundation. 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. The end-user documentation included with the redistribution, * if any, must include the following acknowledgment: * "This product includes software developed by the * Apache Software Foundation (http://www.apache.org/)." * Alternately, this acknowledgment may appear in the software itself, * if and wherever such third-party acknowledgments normally appear. * * 4. The names "Apache" and "Apache Software Foundation" must * not be used to endorse or promote products derived from this * software without prior written permission. For written * permission, please contact apache@apache.org. * * 5. Products derived from this software may not be called "Apache", * nor may "Apache" appear in their name, without prior written * permission of the Apache Software Foundation. * * THIS SOFTWARE IS PROVIDED ``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 SOFTWARE FOUNDATION 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 Software Foundation. For more * information on the Apache Software Foundation, please see * <http://www.apache.org/>. */ #include "httpd.h" #include "http_config.h" #include "http_log.h" #include "mod_optional_fn_export.h" /* The alert will note a strange mirror-image style resemblance to * mod_generic_hook_import.c. Yes, I _did_ mean import. Think about it. */ static int TestOptionalFn(const char *szStr) { ap_log_error(APLOG_MARK,APLOG_ERR,OK,NULL, "Optional function test said: %s",szStr); return OK; } static void ExportRegisterHooks(apr_pool_t *p) { APR_REGISTER_OPTIONAL_FN(TestOptionalFn); } module optional_fn_export_module= { STANDARD20_MODULE_STUFF, NULL, NULL, NULL, NULL, NULL, ExportRegisterHooks };
modules/experimental/mod_optional_fn_export.h 0 → 100644 +3 −0 Original line number Diff line number Diff line #include "apr_optional.h" APR_DECLARE_OPTIONAL_FN(int,TestOptionalFn,(const char *))