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 <[EMAIL PROTECTED]> * Henri Gomez <[EMAIL PROTECTED]> - * 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 <[EMAIL PROTECTED]> * * Henri Gomez <[EMAIL PROTECTED]> * - * 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: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>