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>