cvs commit: jakarta-tomcat-connectors/jk/src/native/apache-1.3 mod_jk.c

2001-06-07 Thread hgomez

hgomez  01/06/07 06:49:50

  Modified:jk/src/native/apache-1.3 mod_jk.c
  Log:
  Removed SecretKey from mod_jk.conf and add uw_map to wc_open
  (ajp14 autoconf)
  
  Revision  ChangesPath
  1.6   +4 -75 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.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- mod_jk.c  2001/06/04 13:42:47 1.5
  +++ mod_jk.c  2001/06/07 13:49:46 1.6
  @@ -126,7 +126,6 @@
   
char * secret_key;
   jk_map_t *automount;
  -jk_map_t *secretkeys;
   
   jk_uri_worker_map_t *uw_map;
   
  @@ -603,24 +602,6 @@
   }
   
   /*
  - * JkSecretKey directive handling
  - *  
  - * JkSecretKey defaultsecretkey 
  - */ 
  -
  -static const char *jk_secret_key(cmd_parms *cmd,
  - void 
*dummy,
  -char *secret_key)
  -{
  -server_rec *s = cmd->server;
  -jk_server_conf_t *conf = 
  -(jk_server_conf_t *)ap_get_module_config(s->module_config, &jk_module);
  -
  -conf->secret_key = secret_key;
  -return NULL;
  -}   
  -
  -/*
* JkAutoMount directive handling 
*
* JkAutoMount worker [virtualhost]
  @@ -642,34 +623,8 @@
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
*
* JkWorkersFile file
  @@ -895,13 +850,6 @@
"the name of a worker file for the Jakarta servlet containers"},
   
/*
  -  * JkSecretKey specifies the default (common) secret key to works with
  - * workers in AJP14 protocol
  -  */
  - {"JkSecretKey", jk_secret_key, NULL, RSRC_CONF, TAKE1,
  - "the default secret key to works with workers"},
  -
  - /*
 * JkAutoMount specifies that the list of handled URLs must be  
 * asked to the servlet engine (autoconf feature)
 */
  @@ -909,13 +857,6 @@
"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.
*/
  @@ -951,6 +892,7 @@
* CERTS - Base64-Der-encoded client certificates.
* CIPHER - A string specifing the ciphers suite in use.
* SESSION - A string specifing the current SSL session.
  + * KEYSIZE - Size of Key used in dialogue (#bits are secure)
*/
   {"JkHTTPSIndicator", jk_set_https_indicator, NULL, RSRC_CONF, TAKE1,
"Name of the Apache environment that contains SSL indication"},
  @@ -1079,6 +1021,7 @@
*
   c->cipher_indicator = "HTTPS_CIPHER";
   c->session_indicator = NULL;
  + c->key_size_indicator = NULL;   
*/
   
   /*
  @@ -1095,9 +1038,6 @@
   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;
   
  @@ -1143,7 +1083,6 @@
   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) {
  @@ -1192,17 +1131,6 @@
   }
   */
   
  -/*
  -{ 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->

cvs commit: jakarta-tomcat-connectors/jk/src/native/apache-1.3 mod_jk.c

2001-06-01 Thread hgomez

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  ChangesPath
  1.4   +80 -18jakarta-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,

cvs commit: jakarta-tomcat-connectors/jk/src/native/apache-1.3 mod_jk.c

2001-05-21 Thread hgomez

hgomez  01/05/21 08:17:01

  Modified:jk/src/native/apache-1.3 mod_jk.c
  Log:
  mod_jk should be passing the raw, possibly encoded URI to Tomcat;
  see 
  for this requirement.  Standalone Tomcat is compliant, only
  mod_jk needed to be changed. (Provided by Keith Wannamaker)
  
  also updated configuration
  
  Revision  ChangesPath
  1.3   +168 -110  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.2
  retrieving revision 1.3
  diff -u -r1.2 -r1.3
  --- mod_jk.c  2001/05/18 14:48:23 1.2
  +++ mod_jk.c  2001/05/21 15:16:55 1.3
  @@ -77,7 +77,7 @@
   #include "util_script.h"
   #include "util_date.h"
   #include "http_conf_globals.h"
  -
  + 
   /*
* Jakarta (jk_) include files
*/
  @@ -136,13 +136,13 @@
   char *https_indicator;
   char *certs_indicator;
   char *cipher_indicator;
  -char *sesion_indicator;
  +char *session_indicator;
   
   /*
* Environment variables support
*/
   int envvars_in_use;
  -table *envvars;   
  +table *envvars; 
   
   server_rec *s;
   } jk_server_conf_t;
  @@ -424,18 +424,13 @@
   s->remote_user  = NULL_FOR_EMPTY(r->connection->user);
   
   s->protocol = r->protocol;
  -s->remote_host  = (char *)ap_get_remote_host(r->connection,
  - r->per_dir_config,
  - REMOTE_HOST);
  -
  +s->remote_host  = (char *)ap_get_remote_host(r->connection, r->per_dir_config, 
REMOTE_HOST);
   s->remote_host  = NULL_FOR_EMPTY(s->remote_host);
   
   s->remote_addr  = NULL_FOR_EMPTY(r->connection->remote_ip);
   /* Wrong:s->server_name  = (char *)ap_get_server_name( r ); */
  -s->server_name= (char *)(r->hostname ? r->hostname : 
  - r->server->server_hostname);
  +s->server_name= (char *)(r->hostname ? r->hostname : 
r->server->server_hostname);
   
  -
   s->server_port= htons( r->connection->local_addr.sin_port );
   /* Wrong: s->server_port  = r->server->port; */
   
  @@ -460,7 +455,19 @@
   s->method   = (char *)r->method;
   s->content_length = get_content_length(r);
   s->query_string = r->args;
  -s->req_uri  = r->uri;
  +
  + /*
  + * The 2.2 servlet spec errata says the uri from
  + * HttpServletRequest.getRequestURI() should remain encoded.
  + * [http://java.sun.com/products/servlet/errata_042700.html]
  +  */
  + s->req_uri  = r->unparsed_uri;
  + if (s->req_uri != NULL) {
  + char *query_str = strchr(s->req_uri, '?');
  + if (query_str != NULL) {
  + *query_str = 0;
  + }
  + }
   
   s->is_ssl   = JK_FALSE;
   s->ssl_cert = NULL;
  @@ -472,19 +479,15 @@
   ap_add_common_vars(r);
   
   if(conf->ssl_enable) {
  -ssl_temp = (char *)ap_table_get(r->subprocess_env, 
  -conf->https_indicator);
  +ssl_temp = (char *)ap_table_get(r->subprocess_env, 
conf->https_indicator);
   if(ssl_temp && !strcasecmp(ssl_temp, "on")) {
   s->is_ssl   = JK_TRUE;
  -s->ssl_cert = (char *)ap_table_get(r->subprocess_env, 
  -   conf->certs_indicator);
  +s->ssl_cert = (char *)ap_table_get(r->subprocess_env, 
conf->certs_indicator);
   if(s->ssl_cert) {
   s->ssl_cert_len = strlen(s->ssl_cert);
   }
  -s->ssl_cipher   = (char *)ap_table_get(r->subprocess_env, 
  -   conf->cipher_indicator);
  -s->ssl_session  = (char *)ap_table_get(r->subprocess_env, 
  -   conf->sesion_indicator);
  +s->ssl_cipher   = (char *)ap_table_get(r->subprocess_env, 
conf->cipher_indicator);
  +s->ssl_session  = (char *)ap_table_get(r->subprocess_env, 
conf->session_indicator);
   }
   }
   
  @@ -498,8 +501,7 @@
   
   for(i = 0 ; i < t->nelts ; i++) {
   s->attributes_names[i] = elts[i].key;
  -s->attributes_values[i] = (char 
*)ap_table_get(r->subprocess_env, 
  -   elts[i].key);
  +s->attributes_values[i] = (char 
*)ap_table_get(r->subprocess_env, elts[i].key);
   if(!s->attributes_values[i]) {
   s->attributes_values[i] = elts[i].val;
   

cvs commit: jakarta-tomcat-connectors/jk/src/native/apache-1.3 mod_jk.c

2001-05-18 Thread hgomez

hgomez  01/05/18 07:48:24

  Modified:jk/src/native/apache-1.3 mod_jk.c
  Log:
  Jk directive added for ajp14
  
  Revision  ChangesPath
  1.2   +69 -1 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.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- mod_jk.c  2001/05/15 10:00:54 1.1
  +++ mod_jk.c  2001/05/18 14:48:23 1.2
  @@ -123,6 +123,10 @@
   char *worker_file;
   int  mountcopy;
   jk_map_t *uri_to_context;
  +
  + char * secret_key;
  +jk_map_t *automount;
  +
   jk_uri_worker_map_t *uw_map;
   
   /*
  @@ -557,6 +561,12 @@
   return NULL;
   }
   
  +/*
  + * JkMount directive handling 
  + *
  + * JkMount URI(context) worker
  + */
  +
   static const char *jk_mount_context(cmd_parms *cmd, 
   void *dummy, 
   char *context,
  @@ -575,6 +585,47 @@
   return NULL;
   }
   
  +/*
  + * JkSecretKey directive handling
  + *  
  + * JkSecretKey defaultsecretkey 
  + */ 
  +
  +static const char *jk_secret_key(cmd_parms *cmd,
  + void 
*dummy,
  +char *secret_key)
  +{
  +server_rec *s = cmd->server;
  +jk_server_conf_t *conf = 
  +(jk_server_conf_t *)ap_get_module_config(s->module_config, &jk_module);
  +
  +conf->secret_key = secret_key;
  +return NULL;
  +}   
  +
  +/*
  + * JkAutoMount directive handling 
  + *
  + * JkAutoMount worker secretkey
  + */
  +
  +static const char *jk_automount_context(cmd_parms *cmd,
  +void *dummy,
  + char 
*worker,
  + char 
*secret_key)
  +{
  + 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->automount, worker, secret_key, (void **)&old);
  + return NULL;
  +}
  + 
   static const char *jk_set_worker_file(cmd_parms *cmd, 
 void *dummy, 
 char *worker_file)
  @@ -723,6 +774,19 @@
*/
   {"JkWorkersFile", jk_set_worker_file, NULL, RSRC_CONF, TAKE1,
"the name of a worker file for the Jakarta servlet containers"},
  + /*
  +  * JkSecretKey specifies the default (common) secret key to works with
  + * workers in AJP14 protocol
  +  */
  + {"JkSecretKey", jk_secret_key, NULL, RSRC_CONF, TAKE1,
  + "the default secret key to works with workers"},
  +/*
  + /*
  +  * JkAutoMount specifies that the list of handled URLs must be  
  +  * asked to the servlet engine (autoconf feature)
  +  */
  + {"JkAutoMount", jk_automount_context, NULL, RSRC_CONF, TAKE12,
  + "automatic mount points to a Tomcat worker"},
   /*
* JkMount mounts a url prefix to a worker (the worker need to be
* defined in the worker properties file.
  @@ -892,6 +956,9 @@
   if(!map_alloc(&(c->uri_to_context))) {
   jk_error_exit(APLOG_MARK, APLOG_EMERG, s, p, "Memory error");
   }
  +if(!map_alloc(&(c->automount))) {
  +jk_error_exit(APLOG_MARK, APLOG_EMERG, s, p, "Memory error");
  +}
   c->uw_map = NULL;
   
   
  @@ -1001,7 +1068,7 @@
   
   #if MODULE_MAGIC_NUMBER >= 19980527
   /* Tell apache we're here */
  -ap_add_version_component("mod_jk");
  +ap_add_version_component(JK_EXPOSED_VERSION);
   #endif
   
   if(wc_open(init_map, conf->log)) {
  @@ -1053,6 +1120,7 @@
  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));
   }
  
  
  



cvs commit: jakarta-tomcat-connectors/jk/src/native/apache-1.3 mod_jk.c mod_jk.dsp

2001-05-15 Thread hgomez

hgomez  01/05/15 03:00:55

  Added:   jk/src/native/apache-1.3 mod_jk.c mod_jk.dsp
  Log:
  move to apache-1.3
  
  Revision  ChangesPath
  1.1  jakarta-tomcat-connectors/jk/src/native/apache-1.3/mod_jk.c
  
  Index: mod_jk.c
  ===
  /*
   * Copyright (c) 1997-1999 The Java Apache Project.  All rights reserved.
   *
   * Redistribution and use in source and binary forms, with or without
   * modification, are permitted provided that the following conditions
   * are met:
   *
   * 1. Redistributions of source code must retain the above copyright
   *notice, this list of conditions and the following disclaimer.
   *
   * 2. Redistributions in binary form must reproduce the above copyright
   *notice, this list of conditions and the following disclaimer in
   *the documentation and/or other materials provided with the
   *distribution.
   *
   * 3. All advertising materials mentioning features or use of this
   *software must display the following acknowledgment:
   *"This product includes software developed by the Java Apache 
   *Project for use in the Apache JServ servlet engine project
   *."
   *
   * 4. The names "Apache JServ", "Apache JServ Servlet Engine" and 
   *"Java Apache Project" must not be used to endorse or promote products 
   *derived from this software without prior written permission.
   *
   * 5. Products derived from this software may not be called "Apache JServ"
   *nor may "Apache" nor "Apache JServ" appear in their names without 
   *prior written permission of the Java Apache Project.
   *
   * 6. Redistributions of any form whatsoever must retain the following
   *acknowledgment:
   *"This product includes software developed by the Java Apache 
   *Project for use in the Apache JServ servlet engine project
   *."
   *
   * THIS SOFTWARE IS PROVIDED BY THE JAVA APACHE PROJECT "AS IS" AND ANY
   * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
   * PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE JAVA APACHE PROJECT OR
   * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
   * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
   * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
   * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
   * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
   * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
   * OF THE POSSIBILITY OF SUCH DAMAGE.
   *
   * This software consists of voluntary contributions made by many
   * individuals on behalf of the Java Apache Group. For more information
   * on the Java Apache Project and the Apache JServ Servlet Engine project,
   * please see .
   *
   */
  
  /***
   * Description: Apache 1.3 plugin for Jakarta/Tomcat   *
   *  See ../common/jk_service.h for general mod_jk info *
   * Author:  Gal Shachor <[EMAIL PROTECTED]>   *
   *  Dan Milstein <[EMAIL PROTECTED]>*
   *  Henri Gomez <[EMAIL PROTECTED]>   *
   * Version: $ $*
   ***/
  
  /*
   * mod_jk: keeps all servlet/jakarta related ramblings together.
   */
  
  #include "ap_config.h"
  #include "httpd.h"
  #include "http_config.h"
  #include "http_request.h"
  #include "http_core.h"
  #include "http_protocol.h"
  #include "http_main.h"
  #include "http_log.h"
  #include "util_script.h"
  #include "util_date.h"
  #include "http_conf_globals.h"
  
  /*
   * Jakarta (jk_) include files
   */
  #ifdef NETWARE
  #define _SYS_TYPES_H_
  #define _NETDB_H_INCLUDED
  #define _IN_
  #define _INET_
  #define _SYS_TIMEVAL_H_
  #define _SYS_SOCKET_H_
  #endif
  #include "jk_global.h"
  #include "jk_util.h"
  #include "jk_map.h"
  #include "jk_pool.h"
  #include "jk_service.h"
  #include "jk_worker.h"
  #include "jk_uri_worker_map.h"
  
  #define JK_WORKER_ID("jakarta.worker")
  #define JK_HANDLER  ("jakarta-servlet")
  #define JK_MAGIC_TYPE   ("application/x-jakarta-servlet")
  #define NULL_FOR_EMPTY(x)   ((x && !strlen(x)) ? NULL : x) 
  
  /*
   * If you are not using SSL, comment out the following line. It will make
   * apache run faster.  
   *
   * Personally, I (DM), think this may be a lie.
   */
  #define ADD_SSL_INFO
  
  module MODULE_VAR_EXPORT jk_module;
  
  /*
   * Configuration object for the mod_jk module.