httpd-modules-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Marco Spinetti <m.spine...@pisa.iol.it>
Subject Re: Functions run when configuration file is read
Date Wed, 09 Apr 2008 07:03:43 GMT
You can solve your problem in this way:

static int initialize_your_module(apr_pool_t *p, apr_pool_t *plog, 
apr_pool_t *ptemp, server_rec *s) {
    void *data;
    const char *userdata_key = "unique_key_init";

    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);
        return OK;
    }
    if (init_strutture(s, p) != APR_SUCCESS) {
        return !OK;
    }
    return OK;
}

.....

static void register_hooks(apr_pool_t *p)
{
    ap_hook_post_config(initialize_your_module, NULL, NULL, 
APR_HOOK_MIDDLE);
    .....
}


You have to do all your unique operations in init_strutture function.

Marco


Ray Morris ha scritto:
>> That was the idea I had, but it seems it is a brand new run 
>> of all my code, thus the variable values are lost and re-initialized. 
>>     
>
>   Page 23 of Nick's book talks about the configuration 
> being read twice - once while the server is running as
> root, to make sure that the configuration is valid, 
> then again as Apache goes into operational mode as 
> user "nobody" or "apache".  
>
>    Also look into the preconfiguration and postconfiguration
> hooks, mentioned on page 66, as well as the monitor hook.
> I'm not knowledgeable enough to give you a solid answer, but
> this information may provide the "hint" you need to be able
> to get it figured out.
> --
> Ray B. Morris
> support@bettercgi.com
>
> Strongbox - The next generation in site security:
> http://www.bettercgi.com/strongbox/
>
> Throttlebox - Intelligent Bandwidth Control
> http://www.bettercgi.com/throttlebox/
>
> Strongbox / Throttlebox affiliate program:
> http://www.bettercgi.com/affiliates/user/register.php
>
>
> On 04/08/2008 02:04:53 PM, Andy Grant wrote:
>   
>> That was the idea I had, but it seems it is a brand new run of all my
>>
>> code, thus the variable values are lost and re-initialized. I've been
>>
>> working on writing to a file on disk, and reading that in, but that 
>> is
>> a 
>> lot of over head I'd like to avoid.
>>
>> Thanks though.
>>
>> Ray Morris wrote:
>>     
>>>> I am writing a module that runs certain functions depending on the
>>>>         
>>>> configuration directives in the conf files.  The functions are run
>>>> twice when the server is started and again when the server shuts 
>>>> down.
>>>>     
>>>>         
>>>    I think I read something about this in Nick's 
>>> book, but I don't recall exactly.  Anyway in case 
>>> someone more knowledgeable than I doesn't reply, remember 
>>> you can of course just set a variable the first time your 
>>> functions are run and then on future invocations you'll 
>>> return immediately if the variable is already set.
>>> --
>>> Ray B. Morris
>>> support@bettercgi.com
>>>
>>>
>>>
>>> On 04/08/2008 01:44:35 PM, Andy Grant wrote:
>>>   
>>>       
>>>> I am writing a module that runs certain functions depending on the
>>>>         
>>>> configuration directives in the conf files.  The functions are run
>>>> twice 
>>>> when the server is started and again when the server shuts down. 
>>>>         
>> Is 
>>     
>>>> there a way to make the functions run only once?  Maybe some
>>>>         
>> variable
>>     
>>>> that can be checked stating that the server is reading the conf 
>>>> files,
>>>>
>>>> actually starting the server, or shutting down?
>>>>
>>>> Thanks
>>>>
>>>>     
>>>>         
>>>   
>>>       
>
>
>
>   


Mime
View raw message