You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by co...@apache.org on 2002/01/26 08:13:47 UTC
cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 jk_map_aprtable.c jk_service_apache2.c mod_jk.c
costin 02/01/25 23:13:47
Modified: jk/native2/server/apache2 jk_map_aprtable.c
jk_service_apache2.c mod_jk.c
Log:
Fixes, updates for the new apis.
Revision Changes Path
1.5 +4 -4 jakarta-tomcat-connectors/jk/native2/server/apache2/jk_map_aprtable.c
Index: jk_map_aprtable.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_map_aprtable.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- jk_map_aprtable.c 6 Jan 2002 09:06:02 -0000 1.4
+++ jk_map_aprtable.c 26 Jan 2002 07:13:47 -0000 1.5
@@ -56,11 +56,11 @@
* ========================================================================= */
/**
- * Implementation of map using apr_table. This avoids copying the headers, env, etc
- * in jk_service - we can just wrap them.
+ * Implementation of map using apr_table. This avoids copying the headers,
+ * env, etc in jk_service - we can just wrap them.
*
- * Note that this _require_ that apr pools are used ( can't be used with jk_pools ),
- * i.e. you must use apr for both pools and maps.
+ * Note that this _require_ that apr pools are used ( can't be used
+ * with jk_pools ), i.e. you must use apr for both pools and maps.
*
* @author Costin Manolache
*/
1.7 +6 -6 jakarta-tomcat-connectors/jk/native2/server/apache2/jk_service_apache2.c
Index: jk_service_apache2.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_service_apache2.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -r1.6 -r1.7
--- jk_service_apache2.c 6 Jan 2002 09:06:02 -0000 1.6
+++ jk_service_apache2.c 26 Jan 2002 07:13:47 -0000 1.7
@@ -59,7 +59,7 @@
* Description: Apache 2 plugin for Jakarta/Tomcat
* Author: Gal Shachor <sh...@il.ibm.com>
* Henri Gomez <hg...@slib.fr>
- * Version: $Revision: 1.6 $
+ * Version: $Revision: 1.7 $
*/
#include "apu_compat.h"
@@ -92,7 +92,7 @@
#include "jk_apache2.h"
-/* #define USE_APRTABLES */
+#define USE_APRTABLES
#define NULL_FOR_EMPTY(x) ((x && !strlen(x)) ? NULL : x)
@@ -116,7 +116,8 @@
headers=s->headers_out;
/* XXX As soon as we switch to jk_map_apache2, this will not be needed ! */
env->l->jkLog(env, env->l, JK_LOG_INFO,
- "service.head() %d %d\n", s->status, headers->size(env, headers ));
+ "service.head() %d %d\n", s->status,
+ headers->size(env, headers ));
for(h = 0 ; h < headers->size( env, headers ) ; h++) {
char *name=headers->nameAt( env, headers, h );
@@ -295,11 +296,11 @@
}
static int init_ws_service(jk_env_t *env, jk_ws_service_t *s,
- jk_endpoint_t *e, void *serverObj)
+ jk_worker_t *worker, void *serverObj)
{
apr_port_t port;
char *ssl_temp = NULL;
- jk_workerEnv_t *workerEnv=e->worker->workerEnv;
+ jk_workerEnv_t *workerEnv=worker->workerEnv;
request_rec *r=serverObj;
int need_content_length_header=JK_FALSE;
@@ -308,7 +309,6 @@
jk_requtil_initRequest(env, s);
s->ws_private = r;
- s->pool=e->cPool;
s->response_started = JK_FALSE;
s->read_body_started = JK_FALSE;
s->workerEnv=workerEnv;
1.18 +40 -11 jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c
Index: mod_jk.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- mod_jk.c 15 Jan 2002 13:49:11 -0000 1.17
+++ mod_jk.c 26 Jan 2002 07:13:47 -0000 1.18
@@ -59,7 +59,7 @@
* Description: Apache 2 plugin for Jakarta/Tomcat *
* Author: Gal Shachor <sh...@il.ibm.com> *
* Henri Gomez <hg...@slib.fr> *
- * Version: $Revision: 1.17 $ *
+ * Version: $Revision: 1.18 $ *
***************************************************************************/
/*
@@ -283,7 +283,7 @@
jk_map_t *m=workerEnv->init_data;
env=workerEnv->globalEnv;
-
+
value = jk_map_replaceProperties(env, m, m->pool, value);
if(value==NULL)
@@ -705,37 +705,66 @@
r->uri, worker->name);
} else {
worker=uriEnv->webapp->worker;
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "mod_jk.handler() per dir worker for %p %p\n",
+ worker, uriEnv->webapp );
+
if( worker==NULL && uriEnv->webapp->workerName != NULL ) {
worker=workerEnv->getWorkerForName( env, workerEnv,
uriEnv->webapp->workerName);
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "mod_jk.handler() finding worker for %p %p\n",
+ worker, uriEnv->webapp );
uriEnv->webapp->worker=worker;
}
}
if(worker==NULL ) {
env->l->jkLog(env, env->l, JK_LOG_ERROR,
- "No worker for %s\n", r->uri);
+ "mod_jk.handle() No worker for %s\n", r->uri);
return 500;
}
- worker->get_endpoint(env, worker, &end);
-
{
jk_ws_service_t sOnStack;
jk_ws_service_t *s=&sOnStack;
- int is_recoverable_error = JK_FALSE;
+ 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 );
+ if( rPool == NULL ) {
+ rPool=worker->pool->create( env, worker->pool, HUGE_POOL_SIZE );
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "mod_jk.handler(): new rpool\n");
+ }
- jk_service_apache2_factory( env, end->cPool, (void *)&s,
+ /* XXX we should reuse the request itself !!! */
+ jk_service_apache2_factory( env, rPool, (void *)&s,
"service", "apache2");
+
+ s->pool = rPool;
- s->init( env, s, end, r );
+ s->is_recoverable_error = JK_FALSE;
+ s->init( env, s, worker, r );
- rc = end->service(env, end, s, &is_recoverable_error);
+ env->l->jkLog(env, env->l, JK_LOG_INFO,
+ "modjk.handler() Calling %s\n", worker->name);
+ rc = worker->service(env, worker, s);
s->afterRequest(env, s);
- }
- end->done(env, end);
+ rPool->reset(env, rPool);
+
+ rc1=worker->rPoolCache->put( env, worker->rPoolCache, rPool );
+ if( rc1 == JK_TRUE ) {
+ rPool=NULL;
+ }
+ if( rPool!=NULL ) {
+ rPool->close(env, rPool);
+ }
+ }
if(rc==JK_TRUE) {
return OK; /* NOT r->status, even if it has changed. */
--
To unsubscribe, e-mail: <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>