Out of curiosity, what sort of use-cases did you have in mind with
this?  It certainly looks interesting, but I can't really see when we'd
use it...

  Issac

j...@apache.org wrote:
> Author: joes
> Date: Sat Jan 10 07:51:20 2009
> New Revision: 733288
>
> URL: http://svn.apache.org/viewvc?rev=733288&view=rev
> Log:
> add optional interface for apreq_handle_apache2()
>
> Modified:
>     httpd/apreq/trunk/CHANGES
>     httpd/apreq/trunk/module/apache2/apreq_module_apache2.h
>     httpd/apreq/trunk/module/apache2/filter.c
>     
> httpd/apreq/trunk/module/t/c-modules/apreq_access_test/mod_apreq_access_test.c
>
> Modified: httpd/apreq/trunk/CHANGES
> URL: 
> http://svn.apache.org/viewvc/httpd/apreq/trunk/CHANGES?rev=733288&r1=733287&r2=733288&view=diff
> ==============================================================================
> --- httpd/apreq/trunk/CHANGES (original)
> +++ httpd/apreq/trunk/CHANGES Sat Jan 10 07:51:20 2009
> @@ -5,6 +5,9 @@
>  @section v2_10 Changes with libapreq2-2.10 (under developement)
>  
>  - C API [joes]
> +  Add optional interface for apreq_handle_apache2().
> +
> +- C API [joes]
>    Clean up buggy apreq_hook_find_param().
>  
>  - Perl Glue Build [Philip M. Gollucci]
>
> Modified: httpd/apreq/trunk/module/apache2/apreq_module_apache2.h
> URL: 
> http://svn.apache.org/viewvc/httpd/apreq/trunk/module/apache2/apreq_module_apache2.h?rev=733288&r1=733287&r2=733288&view=diff
> ==============================================================================
> --- httpd/apreq/trunk/module/apache2/apreq_module_apache2.h (original)
> +++ httpd/apreq/trunk/module/apache2/apreq_module_apache2.h Sat Jan 10 
> 07:51:20 2009
> @@ -19,6 +19,7 @@
>  #define APREQ_APACHE2_H
>  
>  #include "apreq_module.h"
> +#include "apr_optional.h"
>  #include <httpd.h>
>  
>  #ifdef  __cplusplus
> @@ -141,6 +142,12 @@
>  APREQ_DECLARE(apreq_handle_t *) apreq_handle_apache2(request_rec *r);
>  
>  /**
> + *
> + *      
> + */
> +APR_DECLARE_OPTIONAL_FN(apreq_handle_t *,apreq_handle_apache2, (request_rec 
> *r));
> +
> +/**
>   * The mod_apreq2 filter is named "apreq2", and may be used in Apache's
>   * input filter directives, e.g.
>   * @code
>
> Modified: httpd/apreq/trunk/module/apache2/filter.c
> URL: 
> http://svn.apache.org/viewvc/httpd/apreq/trunk/module/apache2/filter.c?rev=733288&r1=733287&r2=733288&view=diff
> ==============================================================================
> --- httpd/apreq/trunk/module/apache2/filter.c (original)
> +++ httpd/apreq/trunk/module/apache2/filter.c Sat Jan 10 07:51:20 2009
> @@ -417,6 +417,7 @@
>                       "Failed to pre-initialize libapreq2");
>          return HTTP_INTERNAL_SERVER_ERROR;
>      }
> +    APR_REGISTER_OPTIONAL_FN(apreq_handle_apache2);
>      return OK;
>  }
>  
>
> Modified: 
> httpd/apreq/trunk/module/t/c-modules/apreq_access_test/mod_apreq_access_test.c
> URL: 
> http://svn.apache.org/viewvc/httpd/apreq/trunk/module/t/c-modules/apreq_access_test/mod_apreq_access_test.c?rev=733288&r1=733287&r2=733288&view=diff
> ==============================================================================
> --- 
> httpd/apreq/trunk/module/t/c-modules/apreq_access_test/mod_apreq_access_test.c
>  (original)
> +++ 
> httpd/apreq/trunk/module/t/c-modules/apreq_access_test/mod_apreq_access_test.c
>  Sat Jan 10 07:51:20 2009
> @@ -69,11 +69,13 @@
>      apreq_param_t *param;
>      struct access_test_cfg *cfg = (struct access_test_cfg *)
>          ap_get_module_config(r->per_dir_config, &apreq_access_test_module);
> +    APR_OPTIONAL_FN_TYPE(apreq_handle_apache2) *fcn =
> +        APR_RETRIEVE_OPTIONAL_FN(apreq_handle_apache2);
>  
> -    if (!cfg || !cfg->param)
> +    if (!cfg || !cfg->param || !fcn)
>          return DECLINED;
>  
> -    handle = apreq_handle_apache2(r);
> +    handle = fcn(r);
>      param = apreq_param(handle, cfg->param);
>      if (param != NULL) {
>          ap_log_rerror(APLOG_MARK, APLOG_DEBUG, APR_SUCCESS,
>
>   

Reply via email to