On 02/12/2011 10:23 PM, [email protected] wrote:
> Author: sf
> Date: Sat Feb 12 21:23:56 2011
> New Revision: 1070153
> 
> URL: http://svn.apache.org/viewvc?rev=1070153&view=rev
> Log:
> Use ap_state_query() to fix many modules that were not correctly initializing
> if they were not active during server startup but got enabled later during a
> graceful restart (in which case they need to do all work during a single
> config run).
> 
> Modified:
>     httpd/httpd/trunk/CHANGES
>     httpd/httpd/trunk/modules/aaa/mod_auth_digest.c
>     httpd/httpd/trunk/modules/cluster/mod_heartmonitor.c
>     httpd/httpd/trunk/modules/core/mod_watchdog.c
>     httpd/httpd/trunk/modules/examples/mod_example_ipc.c
>     httpd/httpd/trunk/modules/generators/mod_cgid.c
>     httpd/httpd/trunk/modules/ldap/util_ldap.c
>     httpd/httpd/trunk/modules/mappers/mod_rewrite.c
>     httpd/httpd/trunk/modules/proxy/balancers/mod_lbmethod_heartbeat.c
>     httpd/httpd/trunk/modules/proxy/mod_proxy_balancer.c
>     httpd/httpd/trunk/modules/session/mod_session_crypto.c
>     httpd/httpd/trunk/modules/slotmem/mod_slotmem_shm.c
>     httpd/httpd/trunk/modules/ssl/ssl_scache.c
> 

> Modified: httpd/httpd/trunk/modules/core/mod_watchdog.c
> URL: 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/core/mod_watchdog.c?rev=1070153&r1=1070152&r2=1070153&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/core/mod_watchdog.c (original)
> +++ httpd/httpd/trunk/modules/core/mod_watchdog.c Sat Feb 12 21:23:56 2011

> @@ -444,11 +445,12 @@ static int wd_post_config_hook(apr_pool_
>          if (!(wd_server_conf = apr_pcalloc(pproc, sizeof(wd_server_conf_t))))
>              return APR_ENOMEM;
>          apr_pool_create(&wd_server_conf->pool, pproc);
> -        wd_server_conf->s = s;
> -        apr_pool_userdata_set(wd_server_conf, pk, apr_pool_cleanup_null, 
> pproc);
> +    }
> +
> +    if (ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG)
>          /* First time config phase -- skip. */
>          return OK;
> -    }
> +

Can't this be regrouped such that we do not do the pr_pcalloc(pproc, 
sizeof(wd_server_conf_t)))) when we are in
AP_SQ_MS_CREATE_PRE_CONFIG state?


>  #if defined(WIN32)
>      {
>          const char *ppid = getenv("AP_PARENT_PID");
> 

> Modified: httpd/httpd/trunk/modules/ssl/ssl_scache.c
> URL: 
> http://svn.apache.org/viewvc/httpd/httpd/trunk/modules/ssl/ssl_scache.c?rev=1070153&r1=1070152&r2=1070153&view=diff
> ==============================================================================
> --- httpd/httpd/trunk/modules/ssl/ssl_scache.c (original)
> +++ httpd/httpd/trunk/modules/ssl/ssl_scache.c Sat Feb 12 21:23:56 2011
> @@ -50,12 +48,8 @@ void ssl_scache_init(server_rec *s, apr_
>       * this first (and only the first) time through, since the pool
>       * will be immediately cleared anyway.  For every subsequent
>       * invocation, initialize the configured cache. */
> -    apr_pool_userdata_get(&data, userdata_key, s->process->pool);
> -    if (!data) {
> -        apr_pool_userdata_set((const void *)1, userdata_key,
> -                              apr_pool_cleanup_null, s->process->pool);
> +    if (!ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG)

I think this should be ap_state_query(AP_SQ_MAIN_STATE) == 
AP_SQ_MS_CREATE_PRE_CONFIG and
not !ap_state_query(AP_SQ_MAIN_STATE) == AP_SQ_MS_CREATE_PRE_CONFIG.

Regards

RĂ¼diger


Reply via email to