Pre-Config (2.0)
int module_pre_config(apr_pool_t *pconf,apr_pool_t *plog,apr_pool_t *ptemp)
This is nominally called before configuration starts, though in practice the directory and server creators are first called once each (for the default server and directory). A typical use of this function is, naturally enough, for initialization. Example 21-3 shows what mod_headers.c uses to initialize a hash.
Example 21-3. mod_headers.c
static void register_format_tag_handler(apr_pool_t *p, char *tag, void *tag_handler, int def) { const void *h = apr_palloc(p, sizeof(h)); h = tag_handler; apr_hash_set(format_tag_hash, tag, 1, h); } static int header_pre_config(apr_pool_t *p, apr_pool_t *plog, apr_pool_t *ptemp) { format_tag_hash = apr_hash_make(p); register_format_tag_handler(p, "D", (void*) header_request_duration, 0); register_format_tag_handler(p, "t", (void*) header_request_time, 0); register_format_tag_handler(p, "e", (void*) header_request_env_var, 0); return OK; }