You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by mt...@apache.org on 2004/03/21 10:43:51 UTC
cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache13 mod_jk2.c jk_service_apache13.c
mturk 2004/03/21 01:43:51
Modified: jk/native2/server/apache13 mod_jk2.c jk_service_apache13.c
Log:
Apply the Apache-wide conding style.
See http://www.apache.org/dev/styleguide.html for details.
Revision Changes Path
1.33 +261 -246 jakarta-tomcat-connectors/jk/native2/server/apache13/mod_jk2.c
Index: mod_jk2.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache13/mod_jk2.c,v
retrieving revision 1.32
retrieving revision 1.33
diff -u -r1.32 -r1.33
--- mod_jk2.c 12 Mar 2004 13:47:20 -0000 1.32
+++ mod_jk2.c 21 Mar 2004 09:43:51 -0000 1.33
@@ -48,7 +48,7 @@
#include "jk_requtil.h"
#ifdef WIN32
-static char file_name[_MAX_PATH];
+static char file_name[_MAX_PATH];
#endif
@@ -68,7 +68,7 @@
* dir mappings. This prevents vhost configs as configured through
* httpd.conf from getting crossed.
*/
-static int dirCounter=0;
+static int dirCounter = 0;
/* ==================== Options setters ==================== */
@@ -83,18 +83,19 @@
* XXX Shouldn't abuse it, there is no way to write back
* the properties.
*/
-static const char *jk2_set2(cmd_parms *cmd, void *per_dir,
- const char *name, char *value)
+static const char *jk2_set2(cmd_parms * cmd, void *per_dir,
+ const char *name, char *value)
{
server_rec *s = cmd->server;
- jk_uriEnv_t *serverEnv=(jk_uriEnv_t *)
+ jk_uriEnv_t *serverEnv = (jk_uriEnv_t *)
ap_get_module_config(s->module_config, &jk2_module);
- jk_env_t *env=workerEnv->globalEnv;
+ jk_env_t *env = workerEnv->globalEnv;
int rc;
-
- rc=workerEnv->config->setPropertyString( env, workerEnv->config, (char *)name, value );
- if( rc!=JK_OK ) {
- fprintf( stderr, "mod_jk2: Unrecognized option %s %s\n", name, value);
+
+ rc = workerEnv->config->setPropertyString(env, workerEnv->config,
+ (char *)name, value);
+ if (rc != JK_OK) {
+ fprintf(stderr, "mod_jk2: Unrecognized option %s %s\n", name, value);
}
return NULL;
@@ -125,16 +126,17 @@
* XXX This is a special configuration, for most users just use
* the properties files.
*/
-static const char *jk2_uriSet(cmd_parms *cmd, void *per_dir,
+static const char *jk2_uriSet(cmd_parms * cmd, void *per_dir,
const char *name, const char *val)
{
- jk_uriEnv_t *uriEnv=(jk_uriEnv_t *)per_dir;
+ jk_uriEnv_t *uriEnv = (jk_uriEnv_t *)per_dir;
- char *tmp_virtual=NULL;
- char *tmp_full_url=NULL;
+ char *tmp_virtual = NULL;
+ char *tmp_full_url = NULL;
server_rec *s = cmd->server;
- uriEnv->mbean->setAttribute( workerEnv->globalEnv, uriEnv->mbean, (char *)name, (void *)val );
+ uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean,
+ (char *)name, (void *)val);
/*
* all of the objects that get passed in now are unique. create_dir adds a incrementing counter to the
@@ -147,43 +149,49 @@
/* if applicable we will set the hostname etc variables. */
if (s->is_virtual && s->server_hostname != NULL &&
- (uriEnv->virtual==NULL || !strchr(uriEnv->virtual, ':') ||
- uriEnv->port != s->port)) {
- tmp_virtual = (char *) ap_pcalloc(cmd->pool,
- sizeof(char *) * (strlen(s->server_hostname) + 8 )) ;
- tmp_full_url = (char *) ap_pcalloc(cmd->pool,
- sizeof(char *) * (strlen(s->server_hostname) +
- strlen(uriEnv->uri)+8 )) ;
+ (uriEnv->virtual == NULL || !strchr(uriEnv->virtual, ':') ||
+ uriEnv->port != s->port)) {
+ tmp_virtual = (char *)ap_pcalloc(cmd->pool,
+ sizeof(char *) *
+ (strlen(s->server_hostname) + 8));
+ tmp_full_url =
+ (char *)ap_pcalloc(cmd->pool,
+ sizeof(char *) * (strlen(s->server_hostname) +
+ strlen(uriEnv->uri) + 8));
/* do not pass the hostname:0/ scheme */
if (s->port) {
- sprintf(tmp_virtual, "%s:%d", s->server_hostname, s->port);
- sprintf(tmp_full_url, "%s:%d%s", s->server_hostname, s->port, uriEnv->uri );
+ sprintf(tmp_virtual, "%s:%d", s->server_hostname, s->port);
+ sprintf(tmp_full_url, "%s:%d%s", s->server_hostname, s->port,
+ uriEnv->uri);
}
else {
strcpy(tmp_virtual, s->server_hostname);
strcpy(tmp_full_url, s->server_hostname);
strcat(tmp_full_url, uriEnv->uri);
}
- uriEnv->mbean->setAttribute( workerEnv->globalEnv, uriEnv->mbean, "uri", tmp_full_url);
- uriEnv->mbean->setAttribute( workerEnv->globalEnv, uriEnv->mbean, "path", cmd->path);
- uriEnv->name=tmp_virtual;
- uriEnv->virtual=tmp_virtual;
+ uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean,
+ "uri", tmp_full_url);
+ uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean,
+ "path", cmd->path);
+ uriEnv->name = tmp_virtual;
+ uriEnv->virtual = tmp_virtual;
}
/* now lets actually add the parameter set in the <Location> block */
- uriEnv->mbean->setAttribute( workerEnv->globalEnv, uriEnv->mbean, (char *)name, (void *)val );
+ uriEnv->mbean->setAttribute(workerEnv->globalEnv, uriEnv->mbean,
+ (char *)name, (void *)val);
return NULL;
}
-static void *jk2_create_dir_config(pool *p, char *path)
+static void *jk2_create_dir_config(pool * p, char *path)
{
/* We don't know the vhost yet - so path is not
* unique. We'll have to generate a unique name
*/
- char *tmp=NULL;
- int a=0;
+ char *tmp = NULL;
+ int a = 0;
jk_uriEnv_t *newUri;
jk_bean_t *jkb;
@@ -191,23 +199,24 @@
return NULL;
a = strlen(path) + 10;
- tmp = (char *) ap_pcalloc(p, sizeof(char *) * (a ) ) ;
- sprintf(tmp, "%s-%d", path==NULL?"":path, dirCounter++);
+ tmp = (char *)ap_pcalloc(p, sizeof(char *) * (a));
+ sprintf(tmp, "%s-%d", path == NULL ? "" : path, dirCounter++);
/* the greatest annoyance here is that we can't create the uri correctly with the hostname as well.
as apache doesn't give us the hostname .
we'll fix this in JkUriSet
- */
+ */
- jkb=workerEnv->globalEnv->createBean2(workerEnv->globalEnv,
- workerEnv->pool, "uri", tmp);
+ jkb = workerEnv->globalEnv->createBean2(workerEnv->globalEnv,
+ workerEnv->pool, "uri", tmp);
newUri = jkb->object;
- newUri->workerEnv=workerEnv;
- newUri->mbean->setAttribute( workerEnv->globalEnv, newUri->mbean, "path", tmp );
+ newUri->workerEnv = workerEnv;
+ newUri->mbean->setAttribute(workerEnv->globalEnv, newUri->mbean, "path",
+ tmp);
/* I'm hoping that setting the id won't break anything. I havn't noticed it breaking anything. */
- newUri->mbean->id=(dirCounter -1);
+ newUri->mbean->id = (dirCounter - 1);
/* this makes the display in the status display make more sense */
- newUri->mbean->localName=path;
+ newUri->mbean->localName = path;
return newUri;
}
@@ -216,11 +225,11 @@
* Need to re-do this to make more sense - like properly creating a new config and returning the merged config...
* Looks like parent needs to be dominant.
*/
-static void *jk2_merge_dir_config(pool *p, void *childv, void *parentv)
+static void *jk2_merge_dir_config(pool * p, void *childv, void *parentv)
{
- jk_uriEnv_t *child =(jk_uriEnv_t *)childv;
- jk_uriEnv_t *parent = (jk_uriEnv_t *)parentv;
- jk_uriEnv_t *winner=NULL;
+ jk_uriEnv_t *child = (jk_uriEnv_t *)childv;
+ jk_uriEnv_t *parent = (jk_uriEnv_t *)parentv;
+ jk_uriEnv_t *winner = NULL;
/* fprintf(stderr,"Merging child & parent. (dir)\n");
@@ -234,15 +243,16 @@
); */
- if ( child == NULL || child->uri==NULL || child->workerName==NULL )
- winner=parent;
- else if ( parent == NULL || parent->uri ==NULL || parent->workerName==NULL )
- winner=child;
- /* interresting bit... so far they are equal ... */
- else if ( strlen(parent->uri) > strlen(child->uri) )
- winner=parent;
- else
- winner=child;
+ if (child == NULL || child->uri == NULL || child->workerName == NULL)
+ winner = parent;
+ else if (parent == NULL || parent->uri == NULL
+ || parent->workerName == NULL)
+ winner = child;
+ /* interresting bit... so far they are equal ... */
+ else if (strlen(parent->uri) > strlen(child->uri))
+ winner = parent;
+ else
+ winner = child;
/* if ( winner == child )
fprintf(stderr, "Going with the child\n");
@@ -251,8 +261,8 @@
else
fprintf(stderr, "Going with NULL\n");
*/
-
- return (void *) winner;
+
+ return (void *)winner;
}
@@ -263,62 +273,64 @@
/* Create the initial set of objects. You need to cut&paste this and
adapt to your server.
*/
-static int jk2_create_workerEnv(ap_pool *p, const server_rec *s)
+static int jk2_create_workerEnv(ap_pool * p, const server_rec * s)
{
jk_env_t *env;
jk_pool_t *globalPool;
jk_bean_t *jkb;
apr_initialize();
- apr_pool_create( &jk_globalPool, NULL );
+ apr_pool_create(&jk_globalPool, NULL);
+
+ jk2_pool_apr_create(NULL, &globalPool, NULL, jk_globalPool);
- jk2_pool_apr_create( NULL, &globalPool, NULL, jk_globalPool );
-
/** Create the global environment. This will register the default
factories, to be overriten later.
*/
- env=jk2_env_getEnv( NULL, globalPool );
+ env = jk2_env_getEnv(NULL, globalPool);
/* Optional. Register more factories ( or replace existing ones )
Insert your server-specific objects here.
- */
+ */
/* Create the logger . We use the default jk logger, will output
to a file. Check the logger for default settings.
- */
- jkb=env->createBean2( env, env->globalPool, "logger.file", "");
- env->alias( env, "logger.file:", "logger");
- env->alias( env, "logger.file:", "logger:");
- if( jkb==NULL ) {
+ */
+ jkb = env->createBean2(env, env->globalPool, "logger.file", "");
+ env->alias(env, "logger.file:", "logger");
+ env->alias(env, "logger.file:", "logger:");
+ if (jkb == NULL) {
fprintf(stderr, "Error creating logger ");
return JK_ERR;
}
- env->l=jkb->object;
- env->alias( env, "logger.file:", "logger");
-
+ env->l = jkb->object;
+ env->alias(env, "logger.file:", "logger");
+
/* Create the workerEnv
*/
- jkb=env->createBean2( env, env->globalPool,"workerEnv", "");
- if( jkb==NULL ) {
+ jkb = env->createBean2(env, env->globalPool, "workerEnv", "");
+ if (jkb == NULL) {
fprintf(stderr, "Error creating workerEnv ");
return JK_ERR;
}
- workerEnv= jkb->object;
- env->alias( env, "workerEnv:", "workerEnv");
+ workerEnv = jkb->object;
+ env->alias(env, "workerEnv:", "workerEnv");
- if( workerEnv==NULL || env->l == NULL ) {
- fprintf( stderr, "Error initializing jk, NULL objects \n");
+ if (workerEnv == NULL || env->l == NULL) {
+ fprintf(stderr, "Error initializing jk, NULL objects \n");
return JK_ERR;
}
/* serverRoot via ap_server_root
*/
- workerEnv->initData->add( env, workerEnv->initData, "serverRoot",
- workerEnv->pool->pstrdup( env, workerEnv->pool, ap_server_root));
+ workerEnv->initData->add(env, workerEnv->initData, "serverRoot",
+ workerEnv->pool->pstrdup(env, workerEnv->pool,
+ ap_server_root));
- /* Local initialization.
+ /* Local initialization.
*/
- env->l->jkLog(env, env->l, JK_LOG_INFO, "Set serverRoot %s\n", ap_server_root);
+ env->l->jkLog(env, env->l, JK_LOG_INFO, "Set serverRoot %s\n",
+ ap_server_root);
workerEnv->_private = (void *)s;
@@ -330,53 +342,54 @@
/* Command table.
*/
-static const command_rec jk2_cmds[] =
- {
- /* This is the 'main' directive for tunning jk2. It takes 2 parameters,
- and it behaves _identically_ as a setting in workers.properties.
- */
- { "JkSet", jk2_set2, NULL, RSRC_CONF, TAKE2,
- "Set a jk property, same syntax and rules as in JkWorkersFile" },
- { "JkUriSet", jk2_uriSet, NULL, ACCESS_CONF, TAKE2,
- "Defines a jk property associated with a Location"},
- NULL
- };
+static const command_rec jk2_cmds[] = {
+ /* This is the 'main' directive for tunning jk2. It takes 2 parameters,
+ and it behaves _identically_ as a setting in workers.properties.
+ */
+ {"JkSet", jk2_set2, NULL, RSRC_CONF, TAKE2,
+ "Set a jk property, same syntax and rules as in JkWorkersFile"},
+ {"JkUriSet", jk2_uriSet, NULL, ACCESS_CONF, TAKE2,
+ "Defines a jk property associated with a Location"},
+ NULL
+};
/** This makes the config for the specified server_rec s
This will include vhost info.
*/
-static void *jk2_create_config(ap_pool *p, server_rec *s)
+static void *jk2_create_config(ap_pool * p, server_rec * s)
{
jk_uriEnv_t *newUri;
jk_bean_t *jkb;
char *tmp;
- if( workerEnv==NULL ) {
- jk2_create_workerEnv(p, s );
+ if (workerEnv == NULL) {
+ jk2_create_workerEnv(p, s);
}
- if( s->is_virtual == 1 ) {
+ if (s->is_virtual == 1) {
/* Virtual host */
- tmp = (char *) ap_pcalloc(p, sizeof(char *) * (strlen(s->server_hostname) + 8 )) ;
- sprintf(tmp, "%s:%d/", s->server_hostname, s->port );
-
- /* for the sake of consistency we must have the port in the uri.
- Really it isn't necessary to have one - but I would like in the future for
- the server config to hold the workers for that server... */
- jkb=workerEnv->globalEnv->createBean2( workerEnv->globalEnv,
- workerEnv->pool,
- "uri", tmp );
- } else {
+ tmp =
+ (char *)ap_pcalloc(p,
+ sizeof(char *) * (strlen(s->server_hostname) +
+ 8));
+ sprintf(tmp, "%s:%d/", s->server_hostname, s->port);
+
+ /* for the sake of consistency we must have the port in the uri.
+ Really it isn't necessary to have one - but I would like in the future for
+ the server config to hold the workers for that server... */
+ jkb = workerEnv->globalEnv->createBean2(workerEnv->globalEnv,
+ workerEnv->pool, "uri", tmp);
+ }
+ else {
/* Default host */
- jkb=workerEnv->globalEnv->createBean2( workerEnv->globalEnv,
- workerEnv->pool,
- "uri", "" );
+ jkb = workerEnv->globalEnv->createBean2(workerEnv->globalEnv,
+ workerEnv->pool, "uri", "");
}
newUri = jkb->object;
- newUri->workerEnv=workerEnv;
+ newUri->workerEnv = workerEnv;
- return (void *) newUri;
+ return (void *)newUri;
}
@@ -384,13 +397,11 @@
/** Standard apache callback, merge jk options specified in
<Host> context. Used to set per virtual host configs
*/
-static void *jk2_merge_config(ap_pool *p,
- void *basev,
- void *overridesv)
+static void *jk2_merge_config(ap_pool * p, void *basev, void *overridesv)
{
- jk_uriEnv_t *base = (jk_uriEnv_t *) basev;
+ jk_uriEnv_t *base = (jk_uriEnv_t *)basev;
jk_uriEnv_t *overrides = (jk_uriEnv_t *)overridesv;
-
+
/* The 'mountcopy' option should be implemented in common.
*/
return overrides;
@@ -399,32 +410,33 @@
/** Standard apache callback, initialize jk. This is called after all
the settings took place.
*/
-static int jk2_init(server_rec *s, ap_pool *pconf)
+static int jk2_init(server_rec * s, ap_pool * pconf)
{
- jk_uriEnv_t *serverEnv=(jk_uriEnv_t *) ap_get_module_config(s->module_config, &jk2_module);
-
- jk_env_t *env=workerEnv->globalEnv;
-
- ap_pool *gPool=NULL;
- void *data=NULL;
- int rc=JK_OK;
-
- env->l->jkLog(env, env->l, JK_LOG_INFO, "mod_jk child init\n" );
-
- if(s->is_virtual)
+ jk_uriEnv_t *serverEnv =
+ (jk_uriEnv_t *)ap_get_module_config(s->module_config, &jk2_module);
+
+ jk_env_t *env = workerEnv->globalEnv;
+
+ ap_pool *gPool = NULL;
+ void *data = NULL;
+ int rc = JK_OK;
+
+ env->l->jkLog(env, env->l, JK_LOG_INFO, "mod_jk child init\n");
+
+ if (s->is_virtual)
return OK;
-
- if(!workerEnv->was_initialized) {
- workerEnv->was_initialized = JK_TRUE;
+
+ if (!workerEnv->was_initialized) {
+ workerEnv->was_initialized = JK_TRUE;
env->l->jkLog(env, env->l, JK_LOG_INFO,
"mod_jk.post_config() init worker env\n");
- workerEnv->parentInit(env, workerEnv );
+ workerEnv->parentInit(env, workerEnv);
- workerEnv->init(env, workerEnv );
-
- workerEnv->server_name = (char *)ap_get_server_version();
+ workerEnv->init(env, workerEnv);
+
+ workerEnv->server_name = (char *)ap_get_server_version();
#if MODULE_MAGIC_NUMBER >= 19980527
@@ -442,209 +454,213 @@
/** Main service method, called to forward a request to tomcat
*/
-static int jk2_handler(request_rec *r)
-{
- jk_logger_t *l=NULL;
- int rc;
- jk_worker_t *worker=NULL;
+static int jk2_handler(request_rec * r)
+{
+ jk_logger_t *l = NULL;
+ int rc;
+ jk_worker_t *worker = NULL;
jk_endpoint_t *end = NULL;
jk_uriEnv_t *uriEnv;
jk_env_t *env;
/* If this is a proxy request, we'll notify an error */
- if(r->proxyreq) {
- return HTTP_INTERNAL_SERVER_ERROR; /* We don't proxy requests. */
+ if (r->proxyreq) {
+ return HTTP_INTERNAL_SERVER_ERROR; /* We don't proxy requests. */
}
/* changed from r->request_config to r->per_dir_config. This should give us the one that was set in
either the translate phase (if it was a config added through workers.properties)
or in the create_dir config. */
- uriEnv=ap_get_module_config( r->request_config, &jk2_module ); /* get one for the dir */
- if ( uriEnv == NULL ) {
- uriEnv=ap_get_module_config( r->per_dir_config, &jk2_module ); /* get one specific to this request if there isn't a dir one. */
+ uriEnv = ap_get_module_config(r->request_config, &jk2_module); /* get one for the dir */
+ if (uriEnv == NULL) {
+ uriEnv = ap_get_module_config(r->per_dir_config, &jk2_module); /* get one specific to this request if there isn't a dir one. */
}
-
+
/* not for me, try next handler */
- if(uriEnv==NULL || strcmp(r->handler,JK_HANDLER)!= 0 )
+ if (uriEnv == NULL || strcmp(r->handler, JK_HANDLER) != 0)
return DECLINED;
-
+
/* Get an env instance */
- env = workerEnv->globalEnv->getEnv( workerEnv->globalEnv );
+ env = workerEnv->globalEnv->getEnv(workerEnv->globalEnv);
/* Set up r->read_chunked flags for chunked encoding, if present */
- if(rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) {
+ if (rc = ap_setup_client_block(r, REQUEST_CHUNKED_DECHUNK)) {
env->l->jkLog(env, env->l, JK_LOG_INFO,
"mod_jk.handler() Can't setup client block %d\n", rc);
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
+ workerEnv->globalEnv->releaseEnv(workerEnv->globalEnv, env);
return rc;
}
- if( uriEnv == NULL ) {
- /* SetHandler case - per_dir config should have the worker*/
- worker = workerEnv->defaultWorker;
- env->l->jkLog(env, env->l, JK_LOG_INFO,
+ if (uriEnv == NULL) {
+ /* SetHandler case - per_dir config should have the worker */
+ worker = workerEnv->defaultWorker;
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
"mod_jk.handler() Default worker for %s %s\n",
- r->uri, worker->mbean->name);
- } else {
- worker=uriEnv->worker;
- env->l->jkLog(env, env->l, JK_LOG_INFO,
+ r->uri, worker->mbean->name);
+ }
+ else {
+ worker = uriEnv->worker;
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
"mod_jk.handler() per dir worker for %#lx %#lx\n",
- worker, uriEnv );
-
- if( worker==NULL && uriEnv->workerName != NULL ) {
- worker=env->getByName( env,uriEnv->workerName);
- env->l->jkLog(env, env->l, JK_LOG_INFO,
+ worker, uriEnv);
+
+ if (worker == NULL && uriEnv->workerName != NULL) {
+ worker = env->getByName(env, uriEnv->workerName);
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
"mod_jk.handler() finding worker for %s %#lx %#lx\n",
- uriEnv->workerName, worker, uriEnv );
- uriEnv->worker=worker;
+ uriEnv->workerName, worker, uriEnv);
+ uriEnv->worker = worker;
}
}
- if(worker==NULL ) {
- env->l->jkLog(env, env->l, JK_LOG_ERROR,
- "mod_jk.handle() No worker for %s\n", r->uri);
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
- return HTTP_INTERNAL_SERVER_ERROR; /* No worker defined for this uri */
+ if (worker == NULL) {
+ env->l->jkLog(env, env->l, JK_LOG_ERROR,
+ "mod_jk.handle() No worker for %s\n", r->uri);
+ workerEnv->globalEnv->releaseEnv(workerEnv->globalEnv, env);
+ return HTTP_INTERNAL_SERVER_ERROR; /* No worker defined for this uri */
}
{
jk_ws_service_t sOnStack;
- jk_ws_service_t *s=&sOnStack;
- jk_pool_t *rPool=NULL;
+ jk_ws_service_t *s = &sOnStack;
+ jk_pool_t *rPool = NULL;
int rc1;
/* Get a pool for the request XXX move it in workerEnv to
be shared with other server adapters */
- rPool= worker->rPoolCache->get( env, worker->rPoolCache );
+ rPool = worker->rPoolCache->get(env, worker->rPoolCache);
- if( rPool == NULL ) {
- rPool=worker->mbean->pool->create( env, worker->mbean->pool, HUGE_POOL_SIZE );
+ if (rPool == NULL) {
+ rPool =
+ worker->mbean->pool->create(env, worker->mbean->pool,
+ HUGE_POOL_SIZE);
env->l->jkLog(env, env->l, JK_LOG_INFO,
"mod_jk.handler(): new rpool\n");
}
jk2_service_apache13_init(env, s);
s->pool = rPool;
- s->init( env, s, worker, r );
-
- /* reset the reco_status, will be set to INITED in LB mode */
- s->reco_status = RECO_NONE;
-
+ s->init(env, s, worker, r);
+
+ /* reset the reco_status, will be set to INITED in LB mode */
+ s->reco_status = RECO_NONE;
+
s->is_recoverable_error = JK_FALSE;
s->uriEnv = uriEnv;
- env->l->jkLog(env, env->l, JK_LOG_INFO,
- "modjk.handler() Calling %s %#lx\n", worker->mbean->name, uriEnv);
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "modjk.handler() Calling %s %#lx\n",
+ worker->mbean->name, uriEnv);
rc = worker->service(env, worker, s);
-
+
s->afterRequest(env, s);
rPool->reset(env, rPool);
-
- rc1=worker->rPoolCache->put( env, worker->rPoolCache, rPool );
- if( rc1 == JK_OK ) {
- rPool=NULL;
- } else {
+
+ rc1 = worker->rPoolCache->put(env, worker->rPoolCache, rPool);
+ if (rc1 == JK_OK) {
+ rPool = NULL;
+ }
+ else {
rPool->close(env, rPool);
}
}
- if(rc==JK_OK) {
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
- return OK; /* NOT r->status, even if it has changed. */
+ if (rc == JK_OK) {
+ workerEnv->globalEnv->releaseEnv(workerEnv->globalEnv, env);
+ return OK; /* NOT r->status, even if it has changed. */
}
env->l->jkLog(env, env->l, JK_LOG_ERROR,
- "mod_jk.handler() Error connecting to tomcat %d %s\n", rc, worker==NULL?"":worker->channelName==NULL?"":worker->channelName);
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
+ "mod_jk.handler() Error connecting to tomcat %d %s\n", rc,
+ worker == NULL ? "" : worker->channelName ==
+ NULL ? "" : worker->channelName);
+ workerEnv->globalEnv->releaseEnv(workerEnv->globalEnv, env);
return HTTP_INTERNAL_SERVER_ERROR; /* Is your tomcat server down ? */
}
/** Use the internal mod_jk mappings to find if this is a request for
* tomcat and what worker to use.
*/
-static int jk2_translate(request_rec *r)
+static int jk2_translate(request_rec * r)
{
jk_uriEnv_t *uriEnv;
jk_env_t *env;
-
+
jk_uriMap_t *uriMap;
- char *name=NULL;
+ char *name = NULL;
int n;
const char *ptr;
- if(r->proxyreq) {
+ if (r->proxyreq) {
return DECLINED;
}
-
- uriEnv=ap_get_module_config( r->per_dir_config, &jk2_module );
- if( uriEnv != NULL && uriEnv->workerName!=NULL) {
+
+ uriEnv = ap_get_module_config(r->per_dir_config, &jk2_module);
+ if (uriEnv != NULL && uriEnv->workerName != NULL) {
/* jk2_handler tries to get the request_config and then falls back to the per_dir one.
- so no point setting the request_config */
- r->handler=JK_HANDLER;
- return OK;
+ so no point setting the request_config */
+ r->handler = JK_HANDLER;
+ return OK;
}
-
- uriMap= workerEnv->uriMap;
+
+ uriMap = workerEnv->uriMap;
/* Get an env instance */
- env = workerEnv->globalEnv->getEnv( workerEnv->globalEnv );
+ env = workerEnv->globalEnv->getEnv(workerEnv->globalEnv);
n = uriMap->vhosts->size(env, uriMap->vhosts);
/* Check JkMount directives, if any */
/* if( workerEnv->uriMap->size == 0 ) */
/* return DECLINED; */
-
+
/* get_env() */
- env = workerEnv->globalEnv->getEnv( workerEnv->globalEnv );
+ env = workerEnv->globalEnv->getEnv(workerEnv->globalEnv);
ptr = ap_get_server_name(r);
- if ( strlen(ptr) > 1024 - 12 ) {
+ if (strlen(ptr) > 1024 - 12) {
/* That is probably an invalid request, DECLINED could display jsp source code. */
env->l->jkLog(env, env->l, JK_LOG_DEBUG,
- "jk2_map_to_storage Host too big %s\n", ptr);
+ "jk2_map_to_storage Host too big %s\n", ptr);
return HTTP_BAD_REQUEST;
}
uriEnv = workerEnv->uriMap->mapUri(env, workerEnv->uriMap,
- ptr,
- ap_get_server_port(r),
- r->uri);
-
- if(uriEnv==NULL || uriEnv->workerName==NULL) {
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
+ ptr, ap_get_server_port(r), r->uri);
+
+ if (uriEnv == NULL || uriEnv->workerName == NULL) {
+ workerEnv->globalEnv->releaseEnv(workerEnv->globalEnv, env);
return DECLINED;
}
- ap_set_module_config( r->request_config, &jk2_module, uriEnv );
- r->handler=JK_HANDLER;
+ ap_set_module_config(r->request_config, &jk2_module, uriEnv);
+ r->handler = JK_HANDLER;
- env->l->jkLog(env, env->l, JK_LOG_INFO,
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
"mod_jk.translate(): uriMap %s %s\n",
r->uri, uriEnv->workerName);
- workerEnv->globalEnv->releaseEnv( workerEnv->globalEnv, env );
+ workerEnv->globalEnv->releaseEnv(workerEnv->globalEnv, env);
return OK;
}
-static const handler_rec jk2_handlers[] =
-{
- { JK_MAGIC_TYPE, jk2_handler },
- { JK_HANDLER, jk2_handler },
+static const handler_rec jk2_handlers[] = {
+ {JK_MAGIC_TYPE, jk2_handler},
+ {JK_HANDLER, jk2_handler},
NULL
};
module MODULE_VAR_EXPORT jk2_module = {
STANDARD_MODULE_STUFF,
- jk2_init, /* module initializer */
- jk2_create_dir_config, /* per-directory config creator */
- jk2_merge_dir_config, /* dir config merger */
- jk2_create_config, /* server config creator */
+ jk2_init, /* module initializer */
+ jk2_create_dir_config, /* per-directory config creator */
+ jk2_merge_dir_config, /* dir config merger */
+ jk2_create_config, /* server config creator */
/* jk2_merge_config, / * server config merger */
NULL,
- jk2_cmds, /* command table */
- jk2_handlers, /* [7] list of handlers */
- jk2_translate, /* [2] filename-to-URI translation */
+ jk2_cmds, /* command table */
+ jk2_handlers, /* [7] list of handlers */
+ jk2_translate, /* [2] filename-to-URI translation */
NULL, /* [5] check/validate user_id */
NULL, /* [6] check user_id is valid *here* */
NULL, /* [4] check access by host address */
@@ -652,31 +668,30 @@
NULL, /* [8] fixups */
NULL, /* [10] logger */
NULL, /* [3] header parser */
- NULL, /* apache child process initializer */
- NULL, /* exit_handler, */ /* apache child process exit/cleanup */
+ NULL, /* apache child process initializer */
+ NULL, /* exit_handler, *//* apache child process exit/cleanup */
NULL /* [1] post read_request handling */
#ifdef X_EAPI
- /*
- * Extended module APIs, needed when using SSL.
- * STDC say that we do not have to have them as NULL but
- * why take a chance
- */
- ,NULL, /* add_module */
+ /*
+ * Extended module APIs, needed when using SSL.
+ * STDC say that we do not have to have them as NULL but
+ * why take a chance
+ */
+ , NULL, /* add_module */
NULL, /* remove_module */
NULL, /* rewrite_command */
NULL, /* new_connection */
- NULL /* close_connection */
+ NULL /* close_connection */
#endif /* EAPI */
-
};
#ifdef WIN32
-BOOL WINAPI DllMain(HINSTANCE hInst, // Instance Handle of the DLL
- ULONG ulReason, // Reason why NT called this DLL
- LPVOID lpReserved) // Reserved parameter for future use
+BOOL WINAPI DllMain(HINSTANCE hInst, // Instance Handle of the DLL
+ ULONG ulReason, // Reason why NT called this DLL
+ LPVOID lpReserved) // Reserved parameter for future use
{
- GetModuleFileName( hInst, file_name, sizeof(file_name));
+ GetModuleFileName(hInst, file_name, sizeof(file_name));
return TRUE;
}
1.13 +181 -163 jakarta-tomcat-connectors/jk/native2/server/apache13/jk_service_apache13.c
Index: jk_service_apache13.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache13/jk_service_apache13.c,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -r1.12 -r1.13
--- jk_service_apache13.c 24 Feb 2004 08:44:42 -0000 1.12
+++ jk_service_apache13.c 21 Mar 2004 09:43:51 -0000 1.13
@@ -42,59 +42,63 @@
#include "jk_requtil.h"
-#define NULL_FOR_EMPTY(x) ((x && !strlen(x)) ? NULL : x)
+#define NULL_FOR_EMPTY(x) ((x && !strlen(x)) ? NULL : x)
-static int JK_METHOD jk2_service_apache13_head(jk_env_t *env, jk_ws_service_t *s )
+static int JK_METHOD jk2_service_apache13_head(jk_env_t *env,
+ jk_ws_service_t *s)
{
int h;
int numheaders;
request_rec *r;
jk_map_t *headers;
-
- if(s==NULL || s->ws_private==NULL )
+
+ if (s == NULL || s->ws_private == NULL)
return JK_ERR;
-
- r = (request_rec *)s->ws_private;
-
- if(s->msg==NULL) {
+
+ r = (request_rec *) s->ws_private;
+
+ if (s->msg == NULL) {
s->msg = "";
}
r->status = s->status;
r->status_line = ap_psprintf(r->pool, "%d %s", s->status, s->msg);
- headers=s->headers_out;
+ headers = s->headers_out;
numheaders = headers->size(env, headers);
/* XXX As soon as we switch to jk_map_apache13, this will not be needed ! */
- if( s->uriEnv->mbean->debug > 0 )
- env->l->jkLog(env, env->l, JK_LOG_INFO,
- "service.head() %d %d\n", s->status,
- numheaders);
-
- for(h = 0 ; h < numheaders; h++) {
- char *name=headers->nameAt( env, headers, h );
- char *val=headers->valueAt( env, headers, h );
+ if (s->uriEnv->mbean->debug > 0)
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "service.head() %d %d\n", s->status, numheaders);
+
+ for (h = 0; h < numheaders; h++) {
+ char *name = headers->nameAt(env, headers, h);
+ char *val = headers->valueAt(env, headers, h);
- if( s->uriEnv->mbean->debug > 0 )
- env->l->jkLog(env, env->l, JK_LOG_INFO,
+ if (s->uriEnv->mbean->debug > 0)
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
"service.head() %s: %s %d %d\n",
- name, val, h, headers->size( env, headers ));
+ name, val, h, headers->size(env, headers));
/* the cmp can also be avoided in we do this earlier and use
the header id */
- if( strcasecmp(name, "Content-type") == 0 ) {
+ if (strcasecmp(name, "Content-type") == 0) {
/* XXX should be done in handler ! */
char *tmp = ap_pstrdup(r->pool, val);
- ap_content_type_tolower(tmp);
+ ap_content_type_tolower(tmp);
r->content_type = tmp;
ap_table_set(r->headers_out, name, val);
- } else if(strcasecmp(name, "Location") == 0 ) {
+ }
+ else if (strcasecmp(name, "Location") == 0) {
/* XXX setn */
ap_table_set(r->headers_out, name, val);
- } else if(strcasecmp(name, "Content-Length") == 0) {
- ap_table_set(r->headers_out, name, val );
- } else if(strcasecmp(name, "Transfer-Encoding") == 0 ) {
- ap_table_set(r->headers_out,name, val);
- } else if(strcasecmp(name, "Last-Modified") == 0 ) {
+ }
+ else if (strcasecmp(name, "Content-Length") == 0) {
+ ap_table_set(r->headers_out, name, val);
+ }
+ else if (strcasecmp(name, "Transfer-Encoding") == 0) {
+ ap_table_set(r->headers_out, name, val);
+ }
+ else if (strcasecmp(name, "Last-Modified") == 0) {
/*
* If the script gave us a Last-Modified header, we can't just
* pass it on blindly because of restrictions on future values.
@@ -102,7 +106,8 @@
ap_update_mtime(r, ap_parseHTTPdate(val));
ap_set_last_modified(r);
ap_table_set(r->headers_out, name, val);
- } else {
+ }
+ else {
ap_table_add(r->headers_out, name, val);
/* ap_table_set(r->headers_out, name, val); */
}
@@ -110,7 +115,7 @@
ap_send_http_header(r);
s->response_started = JK_TRUE;
-
+
return JK_OK;
}
@@ -123,30 +128,33 @@
* the jk_ws_service class. Think of the *s param as a "this" or "self"
* pointer.
*/
-static int JK_METHOD jk2_service_apache13_read(jk_env_t *env, jk_ws_service_t *s,
- void *b, unsigned len,
- unsigned *actually_read)
+static int JK_METHOD jk2_service_apache13_read(jk_env_t *env,
+ jk_ws_service_t *s, void *b,
+ unsigned len,
+ unsigned *actually_read)
{
long rv;
- if(s==NULL || s->ws_private==NULL || b==NULL || actually_read==NULL ) {
+ if (s == NULL || s->ws_private == NULL || b == NULL
+ || actually_read == NULL) {
return JK_ERR;
}
- if(!s->read_body_started) {
- if(ap_should_client_block(s->ws_private)) {
+ if (!s->read_body_started) {
+ if (ap_should_client_block(s->ws_private)) {
s->read_body_started = JK_TRUE;
}
}
rv = ap_get_client_block(s->ws_private, b, len);
-
- if( rv < 0) {
+
+ if (rv < 0) {
*actually_read = 0;
- } else {
- *actually_read = (unsigned) rv;
+ }
+ else {
+ *actually_read = (unsigned)rv;
}
return JK_OK;
-}
+}
/*
* Write a chunk of response data back to the browser. If the headers
@@ -165,28 +173,30 @@
#define CHUNK_SIZE 4096
#endif
-static int JK_METHOD jk2_service_apache13_write(jk_env_t *env, jk_ws_service_t *s,
- const void *b, unsigned int len)
+static int JK_METHOD jk2_service_apache13_write(jk_env_t *env,
+ jk_ws_service_t *s,
+ const void *b,
+ unsigned int len)
{
int rc;
-
- if(s==NULL || s->ws_private == NULL || b==NULL )
+
+ if (s == NULL || s->ws_private == NULL || b == NULL)
return JK_ERR;
-
+
{
size_t rd = 0;
- long ll=len;
- char *bb=(char *)b;
- request_rec *rr=s->ws_private;
+ long ll = len;
+ char *bb = (char *)b;
+ request_rec *rr = s->ws_private;
BUFF *bf = rr->connection->client;
-
- if(!s->response_started) {
- if( s->uriEnv->mbean->debug > 0 )
- env->l->jkLog(env, env->l, JK_LOG_INFO,
+
+ if (!s->response_started) {
+ if (s->uriEnv->mbean->debug > 0)
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
"service.write() default head\n");
- rc=s->head(env, s);
- if( rc != JK_OK ) {
+ rc = s->head(env, s);
+ if (rc != JK_OK) {
return rc;
}
}
@@ -194,21 +204,22 @@
ap_bflush(bf);
return JK_OK;
}
-
+
/* Debug - try to get around rwrite */
- while( ll > 0 ) {
- unsigned long toSend=(ll>CHUNK_SIZE) ? CHUNK_SIZE : ll;
- rd = ap_rwrite((const char *)bb, toSend, rr );
- if( s->uriEnv->mbean->debug > 0 )
- env->l->jkLog(env, env->l, JK_LOG_INFO,
- "service.write() %ld (%ld) out of %ld \n",toSend, rd, ll );
- ll-=CHUNK_SIZE;
- bb+=CHUNK_SIZE;
-
- if(toSend != rd) {
- return JK_ERR;
- }
-
+ while (ll > 0) {
+ unsigned long toSend = (ll > CHUNK_SIZE) ? CHUNK_SIZE : ll;
+ rd = ap_rwrite((const char *)bb, toSend, rr);
+ if (s->uriEnv->mbean->debug > 0)
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "service.write() %ld (%ld) out of %ld \n",
+ toSend, rd, ll);
+ ll -= CHUNK_SIZE;
+ bb += CHUNK_SIZE;
+
+ if (toSend != rd) {
+ return JK_ERR;
+ }
+
}
/*
@@ -223,16 +234,17 @@
/* Utility functions */
/* ========================================================================= */
-static int jk2_get_content_length(jk_env_t *env, request_rec *r)
+static int jk2_get_content_length(jk_env_t *env, request_rec * r)
{
- if(r->clength > 0) {
+ if (r->clength > 0) {
return r->clength;
- } else {
+ }
+ else {
char *lenp = (char *)ap_table_get(r->headers_in, "Content-Length");
- if(lenp) {
+ if (lenp) {
int rc = atoi(lenp);
- if(rc > 0) {
+ if (rc > 0) {
return rc;
}
}
@@ -242,46 +254,47 @@
}
static int JK_METHOD jk2_init_ws_service(jk_env_t *env, jk_ws_service_t *s,
- jk_worker_t *worker, void *serverObj)
+ jk_worker_t *worker, void *serverObj)
{
- char *ssl_temp = NULL;
- jk_workerEnv_t *workerEnv=worker->workerEnv;
- request_rec *r=serverObj;
- int need_content_length_header=JK_FALSE;
+ char *ssl_temp = NULL;
+ jk_workerEnv_t *workerEnv = worker->workerEnv;
+ request_rec *r = serverObj;
+ int need_content_length_header = JK_FALSE;
/* Common initialization */
/* XXX Probably not needed, we're duplicating */
jk2_requtil_initRequest(env, s);
-
+
s->ws_private = r;
s->response_started = JK_FALSE;
s->read_body_started = JK_FALSE;
- s->workerEnv=workerEnv;
+ s->workerEnv = workerEnv;
workerEnv->childId = r->connection->child_num;
- s->jvm_route = NULL; /* Used for sticky session routing */
+ s->jvm_route = NULL; /* Used for sticky session routing */
- s->auth_type = NULL_FOR_EMPTY(r->connection->ap_auth_type);
- s->remote_user = NULL_FOR_EMPTY(r->connection->user);
+ s->auth_type = NULL_FOR_EMPTY(r->connection->ap_auth_type);
+ 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 = NULL_FOR_EMPTY(s->remote_host);
- s->remote_addr = NULL_FOR_EMPTY(r->connection->remote_ip);
+ s->protocol = r->protocol;
+ 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);
/* get server name */
- 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);
s->server_software = (char *)ap_get_server_version();
- s->method = (char *)r->method;
+ s->method = (char *)r->method;
s->content_length = jk2_get_content_length(env, r);
- s->is_chunked = r->read_chunked;
+ s->is_chunked = r->read_chunked;
s->no_more_chunks = 0;
- s->query_string = r->args;
+ s->query_string = r->args;
/*
* The 2.2 servlet spec errata says the uri from
@@ -301,111 +314,115 @@
switch (workerEnv->options & JK_OPT_FWDURIMASK) {
- case JK_OPT_FWDURICOMPATUNPARSED :
- 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;
- }
+ case JK_OPT_FWDURICOMPATUNPARSED:
+ 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;
}
+ }
break;
- case JK_OPT_FWDURICOMPAT :
- s->req_uri = r->uri;
+ case JK_OPT_FWDURICOMPAT:
+ s->req_uri = r->uri;
break;
- case JK_OPT_FWDURIESCAPED :
- s->req_uri = ap_escape_uri(r->pool, r->uri);
+ case JK_OPT_FWDURIESCAPED:
+ s->req_uri = ap_escape_uri(r->pool, r->uri);
break;
- default :
- return JK_ERR;
+ default:
+ return JK_ERR;
}
- s->is_ssl = JK_FALSE;
- s->ssl_cert = NULL;
+ s->is_ssl = JK_FALSE;
+ s->ssl_cert = NULL;
s->ssl_cert_len = 0;
- s->ssl_cipher = NULL; /* required by Servlet 2.3 Api,
+ s->ssl_cipher = NULL; /* required by Servlet 2.3 Api,
allready in original ajp13 */
- s->ssl_session = NULL;
- s->ssl_key_size = -1; /* required by Servlet 2.3 Api, added in jtc */
+ s->ssl_session = NULL;
+ s->ssl_key_size = -1; /* required by Servlet 2.3 Api, added in jtc */
- if(workerEnv->ssl_enable || workerEnv->envvars_in_use) {
+ if (workerEnv->ssl_enable || workerEnv->envvars_in_use) {
ap_add_common_vars(r);
- if(workerEnv->ssl_enable) {
- ssl_temp =
- (char *)ap_table_get(r->subprocess_env,
- workerEnv->https_indicator);
- if(ssl_temp && !strcasecmp(ssl_temp, "on")) {
- s->is_ssl = JK_TRUE;
- s->ssl_cert =
- (char *)ap_table_get(r->subprocess_env,
- workerEnv->certs_indicator);
- if(s->ssl_cert) {
+ if (workerEnv->ssl_enable) {
+ ssl_temp =
+ (char *)ap_table_get(r->subprocess_env,
+ workerEnv->https_indicator);
+ if (ssl_temp && !strcasecmp(ssl_temp, "on")) {
+ s->is_ssl = JK_TRUE;
+ s->ssl_cert =
+ (char *)ap_table_get(r->subprocess_env,
+ workerEnv->certs_indicator);
+ if (s->ssl_cert) {
s->ssl_cert_len = strlen(s->ssl_cert);
}
/* Servlet 2.3 API */
- s->ssl_cipher =
- (char *)ap_table_get(r->subprocess_env,
- workerEnv->cipher_indicator);
- s->ssl_session =
- (char *)ap_table_get(r->subprocess_env,
- workerEnv->session_indicator);
+ s->ssl_cipher =
+ (char *)ap_table_get(r->subprocess_env,
+ workerEnv->cipher_indicator);
+ s->ssl_session =
+ (char *)ap_table_get(r->subprocess_env,
+ workerEnv->session_indicator);
if (workerEnv->options & JK_OPT_FWDKEYSIZE) {
/* Servlet 2.3 API */
- ssl_temp = (char *)ap_table_get(r->subprocess_env,
- workerEnv->key_size_indicator);
+ ssl_temp = (char *)ap_table_get(r->subprocess_env,
+ workerEnv->
+ key_size_indicator);
if (ssl_temp)
s->ssl_key_size = atoi(ssl_temp);
}
}
}
- jk2_map_default_create(env, &s->attributes, s->pool );
-
- if(workerEnv->envvars_in_use) {
- int envCnt=workerEnv->envvars->size( env, workerEnv->envvars );
+ jk2_map_default_create(env, &s->attributes, s->pool);
+
+ if (workerEnv->envvars_in_use) {
+ int envCnt = workerEnv->envvars->size(env, workerEnv->envvars);
int i;
- for( i=0; i< envCnt ; i++ ) {
- char *name= workerEnv->envvars->nameAt( env, workerEnv->envvars, i );
- char *val= (char *)ap_table_get(r->subprocess_env, name);
- if(val==NULL) {
- val=workerEnv->envvars->valueAt( env, workerEnv->envvars, i );
+ for (i = 0; i < envCnt; i++) {
+ char *name =
+ workerEnv->envvars->nameAt(env, workerEnv->envvars, i);
+ char *val = (char *)ap_table_get(r->subprocess_env, name);
+ if (val == NULL) {
+ val =
+ workerEnv->envvars->valueAt(env, workerEnv->envvars,
+ i);
}
- s->attributes->put( env, s->attributes, name, val, NULL );
+ s->attributes->put(env, s->attributes, name, val, NULL);
}
}
}
- jk2_map_default_create(env, &s->headers_in, s->pool );
+ jk2_map_default_create(env, &s->headers_in, s->pool);
- if(r->headers_in && ap_table_elts(r->headers_in)) {
+ if (r->headers_in && ap_table_elts(r->headers_in)) {
const array_header *t = ap_table_elts(r->headers_in);
- if(t && t->nelts) {
+ if (t && t->nelts) {
int i;
- table_entry *elts = (table_entry *)t->elts;
+ table_entry *elts = (table_entry *) t->elts;
- for(i = 0 ; i < t->nelts ; i++) {
- s->headers_in->add( env, s->headers_in,
- elts[i].key, elts[i].val);
+ for (i = 0; i < t->nelts; i++) {
+ s->headers_in->add(env, s->headers_in,
+ elts[i].key, elts[i].val);
}
}
}
- if(!s->is_chunked && s->content_length == 0) {
+ if (!s->is_chunked && s->content_length == 0) {
/* XXX if r->contentLength == 0 I assume there's no header
or a header with '0'. In the second case, put will override it
*/
- s->headers_in->put( env, s->headers_in, "content-length", "0", NULL );
+ s->headers_in->put(env, s->headers_in, "content-length", "0", NULL);
}
- jk2_map_default_create(env, &s->headers_out, s->pool );
+ jk2_map_default_create(env, &s->headers_out, s->pool);
return JK_OK;
}
@@ -420,13 +437,14 @@
* jk shouldn't do it instead, and the user should get the
* error message !
*/
-static void JK_METHOD jk2_service_apache13_afterRequest(jk_env_t *env, jk_ws_service_t *s )
+static void JK_METHOD jk2_service_apache13_afterRequest(jk_env_t *env,
+ jk_ws_service_t *s)
{
-
+
if (s->content_read < s->content_length ||
- (s->is_chunked && ! s->no_more_chunks)) {
-
- request_rec *r=s->ws_private;
+ (s->is_chunked && !s->no_more_chunks)) {
+
+ request_rec *r = s->ws_private;
char *buff = ap_palloc(r->pool, 2048);
if (buff != NULL) {
@@ -440,15 +458,15 @@
int jk2_service_apache13_init(jk_env_t *env, jk_ws_service_t *s)
{
- if(s==NULL ) {
+ if (s == NULL) {
return JK_ERR;
}
- s->head = jk2_service_apache13_head;
- s->read = jk2_service_apache13_read;
- s->write = jk2_service_apache13_write;
- s->init = jk2_init_ws_service;
- s->afterRequest = jk2_service_apache13_afterRequest;
-
+ s->head = jk2_service_apache13_head;
+ s->read = jk2_service_apache13_read;
+ s->write = jk2_service_apache13_write;
+ s->init = jk2_init_ws_service;
+ s->afterRequest = jk2_service_apache13_afterRequest;
+
return JK_OK;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: tomcat-dev-help@jakarta.apache.org