hgomez      01/06/01 02:50:43

  Modified:    jk/src/native/apache-1.3 mod_jk.c
  Log:
  New directive handling for autoconf support and
  some code cleanup
  
  Revision  Changes    Path
  1.4       +80 -18    jakarta-tomcat-connectors/jk/src/native/apache-1.3/mod_jk.c
  
  Index: mod_jk.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/src/native/apache-1.3/mod_jk.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- mod_jk.c  2001/05/21 15:16:55     1.3
  +++ mod_jk.c  2001/06/01 09:50:42     1.4
  @@ -126,6 +126,7 @@
   
        char * secret_key;
       jk_map_t *automount;
  +    jk_map_t *secretkeys;
   
       jk_uri_worker_map_t *uw_map;
   
  @@ -614,13 +615,13 @@
   /*
    * JkAutoMount directive handling 
    *
  - * JkAutoMount worker secretkey
  + * JkAutoMount worker [virtualhost]
    */
   
   static const char *jk_automount_context(cmd_parms *cmd,
                                           void *dummy,
                                                                                char 
*worker,
  -                                                                             char 
*secret_key)
  +                                                                             char 
*virtualhost)
   {
        server_rec *s = cmd->server;
        jk_server_conf_t *conf =
  @@ -630,10 +631,36 @@
         * Add the new automount to the auto map.
         */
        char * old;
  -     map_put(conf->automount, worker, secret_key, (void **)&old);
  +     map_put(conf->automount, worker, virtualhost, (void **)&old);
        return NULL;
   }
        
  +
  +/*
  + * JkWorkerSecretKey directive handling
  + *
  + * JkWorkerSecretKey worker secretkey
  + */
  +
  +static const char *jk_worker_secret_key(cmd_parms *cmd,
  +                                       void *dummy,
  +                                       char *worker,
  +                                       char *secretkey)
  +{
  +    server_rec *s = cmd->server;
  +    jk_server_conf_t *conf =
  +        (jk_server_conf_t *)ap_get_module_config(s->module_config, &jk_module);
  +
  +    /*
  +     * Add the new automount to the auto map.
  +     */
  +    char * old;
  +    map_put(conf->secretkeys, worker, secretkey, (void **)&old);
  +    return NULL;
  +}
  +   
  +
  +
   /*
    * JkWorkersFile Directive Handling
    *
  @@ -852,14 +879,21 @@
         * asked to the servlet engine (autoconf feature)
         */
        {"JkAutoMount", jk_automount_context, NULL, RSRC_CONF, TAKE12,
  -     "automatic mount points to a Tomcat worker"},
  +     "automatic mount points to a servlet-engine worker"},
   
       /*
  +     * JkWorkerSecretKey specifies that the secret key associated to a
  +     * worker
  +     */
  +    {"JkWorkerSecretKey", jk_worker_secret_key, NULL, RSRC_CONF, TAKE2,
  +     "Secret key for a worker"},
  +     
  +    /*
        * JkMount mounts a url prefix to a worker (the worker need to be
        * defined in the worker properties file.
        */
       {"JkMount", jk_mount_context, NULL, RSRC_CONF, TAKE23,
  -     "A mount point from a context to a Tomcat worker"},
  +     "A mount point from a context to a servlet-engine worker"},
   
       /*
        * JkMountCopy specifies if mod_jk should copy the mount points
  @@ -874,11 +908,11 @@
         * JkLogStampFormat specify the time-stamp to be used on log
        */
       {"JkLogFile", jk_set_log_file, NULL, RSRC_CONF, TAKE1,
  -     "Full path to the Jakarta Tomcat module log file"},
  +     "Full path to the Jakarta mod_jk module log file"},
       {"JkLogLevel", jk_set_log_level, NULL, RSRC_CONF, TAKE1,
  -     "The Jakarta Tomcat module log level, can be debug, info, error or emerg"},
  +     "The Jakarta mod_jk module log level, can be debug, info, error or emerg"},
       {"JkLogStampFormat", jk_set_log_fmt, NULL, RSRC_CONF, TAKE1,
  -     "The Jakarta Tomcat module log format, follow strftime synthax"},
  +     "The Jakarta mod_jk module log format, follow strftime synthax"},
   
       /*
        * Apache has multiple SSL modules (for example apache_ssl, stronghold
  @@ -1031,6 +1065,9 @@
       if(!map_alloc(&(c->automount))) {
           jk_error_exit(APLOG_MARK, APLOG_EMERG, s, p, "Memory error");
       }
  +     if(!map_alloc(&(c->secretkeys))) {
  +             jk_error_exit(APLOG_MARK, APLOG_EMERG, s, p, "Memory error");
  +     }
       c->uw_map = NULL;
        c->secret_key = NULL;
   
  @@ -1076,6 +1113,7 @@
       if(overrides->mountcopy) {
                copy_jk_map(p, overrides->s, base->uri_to_context, 
overrides->uri_to_context);
                copy_jk_map(p, overrides->s, base->automount, overrides->automount);
  +             copy_jk_map(p, overrides->s, base->secretkeys, overrides->secretkeys);
       }
   
       if(base->envvars_in_use) {
  @@ -1113,15 +1151,28 @@
           }
       }
       
  +/*
   { int i;
  -jk_log(conf->log, JK_LOG_DEBUG, "secret = %s\n", conf->secret_key);
  +jk_log(conf->log, JK_LOG_DEBUG, "default secret key = %s\n", conf->secret_key);
   for (i = 0; i < map_size(conf->automount); i++)
   {
               char *name = map_name_at(conf->automount, i);
  -                     jk_log(conf->log, JK_LOG_DEBUG, "worker = %s and key = %s\n", 
name, map_get_string(conf->automount, name, NULL));
  +                     jk_log(conf->log, JK_LOG_DEBUG, "worker = %s and virtualhost = 
%s\n", name, map_get_string(conf->automount, name, NULL));
   }
   }
  +*/
   
  +/*
  +{ int i;
  +jk_log(conf->log, JK_LOG_DEBUG, "secret = %s\n", conf->secret_key);
  +for (i = 0; i < map_size(conf->secretkeys); i++)
  +{
  +            char *name = map_name_at(conf->secretkeys, i);
  +            jk_log(conf->log, JK_LOG_DEBUG, "worker = %s and secretkey = %s\n", 
name, map_get_string(conf->secretkeys, name, NULL));
  +}
  +}
  +*/
  +
       /* Create mapping from uri's to workers, and start up all the workers */
       if(!uri_worker_map_alloc(&(conf->uw_map), conf->uri_to_context, conf->log)) {
           jk_error_exit(APLOG_MARK, APLOG_EMERG, s, p, "Memory error");
  @@ -1172,15 +1223,26 @@
   
   static void exit_handler (server_rec *s, ap_pool *p)
   {
  -   jk_server_conf_t *conf =
  -       (jk_server_conf_t *)ap_get_module_config(s->module_config, &jk_module);
  +     server_rec *tmp = s;
  +
  +     /* loop through all available servers to clean up all configuration
  +      * records we've created
  +      */
  +    while (NULL != tmp)
  +    {
  +        jk_server_conf_t *conf =
  +            (jk_server_conf_t *)ap_get_module_config(tmp->module_config, 
&jk_module);
   
  -   wc_close(conf->log);
  -   uri_worker_map_free(&(conf->uw_map), conf->log);
  -   map_free(&(conf->uri_to_context));
  -   map_free(&(conf->automount));
  -   if (conf->log)
  -      jk_close_file_logger(&(conf->log));
  +        if (NULL != conf)
  +        {
  +            wc_close(conf->log);
  +            uri_worker_map_free(&(conf->uw_map), conf->log);
  +            map_free(&(conf->uri_to_context));
  +            if (conf->log)
  +                jk_close_file_logger(&(conf->log));
  +        }
  +        tmp = tmp->next;
  +    }
   }
   
   static const handler_rec jk_handlers[] =
  
  
  

Reply via email to