costin 01/12/31 11:18:48
Modified: jk/native2/common jk_workerEnv.c
Log:
Moved some of the code that was duplicated in all server adapters.
The initialization of jk is common for all servers, no need to
cut&paste it.
Revision Changes Path
1.12 +110 -3 jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c
Index: jk_workerEnv.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -r1.11 -r1.12
--- jk_workerEnv.c 17 Dec 2001 07:17:08 -0000 1.11
+++ jk_workerEnv.c 31 Dec 2001 19:18:48 -0000 1.12
@@ -59,7 +59,7 @@
* Description: Workers controller *
* Author: Gal Shachor <[EMAIL PROTECTED]> *
* Author: Henri Gomez <[EMAIL PROTECTED]> *
- * Version: $Revision: 1.11 $ *
+ * Version: $Revision: 1.12 $ *
***************************************************************************/
#include "jk_workerEnv.h"
@@ -73,13 +73,117 @@
static void jk_workerEnv_close(jk_env_t *env, jk_workerEnv_t *_this);
static void jk_workerEnv_initHandlers(jk_env_t *env, jk_workerEnv_t *_this);
+static int jk_workerEnv_init1(jk_env_t *env, jk_workerEnv_t *_this);
+
+static int jk_workerEnv_init(jk_env_t *env, jk_workerEnv_t *workerEnv)
+{
+ int err;
+ char *opt;
+ int options;
+
+ opt=jk_map_getString( env, workerEnv->init_data, "workerFile", NULL );
+ if( opt != NULL ) {
+ struct stat statbuf;
+
+ /* we need an absolut path (ap_server_root_relative does the ap_pstrdup) */
+ workerEnv->worker_file = opt;
+ /* We should make it relative to JK_HOME or absolute path.
+ ap_server_root_relative(cmd->pool,opt); */
+
+ if (workerEnv->worker_file == NULL) {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,
+ "JkWorkersFile file_name invalid %s",
workerEnv->worker_file);
+ return JK_FALSE;
+ }
+
+ if (stat(workerEnv->worker_file, &statbuf) == -1) {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,
+ "Can't find the workers file specified");
+ return JK_FALSE;
+ }
+ /** Read worker files
+ */
+ env->l->jkLog(env, env->l, JK_LOG_DEBUG, "Reading map %s %d\n",
+ workerEnv->worker_file,
+ workerEnv->init_data->size(env, workerEnv->init_data) );
+
+ err=jk_map_readFileProperties(env, workerEnv->init_data,
+ workerEnv->worker_file);
+ if( err==JK_TRUE ) {
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "mod_jk.initJk() Reading worker properties %s %d\n",
workerEnv->worker_file,
+ workerEnv->init_data->size( env, workerEnv->init_data ) );
+ } else {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,
+ "mod_jk.initJk() Error reading worker properties %s %d\n",
+ workerEnv->worker_file,
+ workerEnv->init_data->size( env, workerEnv->init_data ) );
+ }
+ }
+
+ opt=jk_map_getString( env, workerEnv->init_data, "logLevel", "Error" );
+
+ if(0 == strcasecmp(opt, JK_LOG_INFO_VERB)) {
+ env->l->level=JK_LOG_INFO_LEVEL;
+ }
+ if(0 == strcasecmp(opt, JK_LOG_DEBUG_VERB)) {
+ env->l->level=JK_LOG_DEBUG_LEVEL;
+ }
+ opt=jk_map_getString( env, workerEnv->init_data, "logFile", NULL );
+
+ env->l->jkLog(env, env->l, JK_LOG_INFO, "mod_jk.init_jk()\n" );
+ env->l->open( env, env->l, workerEnv->init_data );
+
+ opt=jk_map_getString( env, workerEnv->init_data, "sslEnable", NULL );
+ workerEnv->ssl_enable = JK_TRUE;
+ opt=jk_map_getString( env, workerEnv->init_data, "httpsIndicator", NULL );
+ workerEnv->https_indicator = opt;
+ opt=jk_map_getString( env, workerEnv->init_data, "certsIndicator", NULL );
+ workerEnv->certs_indicator = opt;
+ opt=jk_map_getString( env, workerEnv->init_data, "cipherIndicator", NULL );
+ workerEnv->cipher_indicator = opt;
+ opt=jk_map_getString( env, workerEnv->init_data, "sessionIndicator", NULL );
+ workerEnv->session_indicator = opt;
+ opt=jk_map_getString( env, workerEnv->init_data, "keySizeIndicator", NULL );
+ workerEnv->key_size_indicator = opt;
+
+ /* Small change in how we treat options: we have a default,
+ and assume that any option declared by user has the intention
+ of overriding the default ( "-Option == no option, leave the
+ default
+ */
+ if ( jk_map_getBool(env, workerEnv->init_data,
+ "ForwardKeySize", NULL)) {
+ workerEnv->options |= JK_OPT_FWDKEYSIZE;
+ } else if(jk_map_getBool(env, workerEnv->init_data,
+ "ForwardURICompat", NULL)) {
+ workerEnv->options &= ~JK_OPT_FWDURIMASK;
+ workerEnv->options |=JK_OPT_FWDURICOMPAT;
+ } else if(jk_map_getBool(env, workerEnv->init_data,
+ "ForwardURICompatUnparsed", NULL)) {
+ workerEnv->options &= ~JK_OPT_FWDURIMASK;
+ workerEnv->options |=JK_OPT_FWDURICOMPATUNPARSED;
+ } else if (jk_map_getBool(env, workerEnv->init_data,
+ "ForwardURIEscaped", NULL)) {
+ workerEnv->options &= ~JK_OPT_FWDURIMASK;
+ workerEnv->options |= JK_OPT_FWDURIESCAPED;
+ }
+
+ /* Init() - post-config initialization ( now all options are set ) */
+ jk_workerEnv_init1( env, workerEnv );
+
+ err=workerEnv->uriMap->init(env, workerEnv->uriMap,
+ workerEnv,
+ workerEnv->init_data );
+ return JK_TRUE;
+}
/**
* Init the workers, prepare the we.
*
* Replaces wc_open
*/
-static int jk_workerEnv_init(jk_env_t *env, jk_workerEnv_t *_this)
+static int jk_workerEnv_init1(jk_env_t *env, jk_workerEnv_t *_this)
{
jk_map_t *init_data=_this->init_data;
char **worker_list = NULL;
@@ -90,7 +194,7 @@
/* _this->init_data=init_data; */
tmp = jk_map_getString(env, init_data, "worker.list",
- DEFAULT_WORKER );
+ DEFAULT_WORKER );
worker_list=jk_map_split( env, init_data, init_data->pool,
tmp, &_this->num_of_workers );
@@ -397,6 +501,7 @@
type=jk_map_getStrProp( env, init_data,"worker",name,"type",NULL );
/* Each worker has it's own pool */
+ if( type == NULL ) type="ajp13";
w=(jk_worker_t *)env->getInstance(env, workerPool, "worker",
@@ -536,6 +641,8 @@
_this->processCallbacks=&jk_workerEnv_processCallbacks;
_this->rootWebapp=_this->createWebapp( env, _this, NULL, "/", NULL );
+
+ _this->globalEnv=env;
return JK_TRUE;
}
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>