costin      01/12/06 14:54:44

  Modified:    jk/native2/common jk_ajp14_worker.c jk_jni_worker.c
                        jk_channel_socket.c jk_endpoint.c jk_env.c
                        jk_handler_logon.c jk_handler_response.c
                        jk_lb_worker.c
  Log:
  Updates for the interface changes.
  
  Use pools instead of malloc.
  
  Pools are now consistent ( i.e. jk_pool_t *pool ), no more on-stack pools.
  
  Revision  Changes    Path
  1.5       +25 -22    jakarta-tomcat-connectors/jk/native2/common/jk_ajp14_worker.c
  
  Index: jk_ajp14_worker.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_ajp14_worker.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_ajp14_worker.c 2001/12/05 20:48:20     1.4
  +++ jk_ajp14_worker.c 2001/12/06 22:54:44     1.5
  @@ -72,8 +72,8 @@
   #include "jk_service.h"
   #include "jk_env.h"
   
  -int JK_METHOD jk_worker_ajp14_factory( jk_env_t *env, void **result,
  -                                       char *type, char *name);
  +int JK_METHOD jk_worker_ajp14_factory( jk_env_t *env, jk_pool_t *pool, void 
**result,
  +                                       const char *type, const char *name);
   
   static int JK_METHOD
   jk_worker_ajp14_service(jk_endpoint_t   *e, jk_ws_service_t *s,
  @@ -102,19 +102,19 @@
   
   /* -------------------- Impl -------------------- */
   
  -int JK_METHOD jk_worker_ajp14_factory( jk_env_t *env, void **result,
  -                                       char *type, char *name)
  +int JK_METHOD jk_worker_ajp14_factory( jk_env_t *env, jk_pool_t *pool, void 
**result,
  +                                       const char *type, const char *name)
   {
       jk_logger_t *l=env->logger;
  -    jk_worker_t *w=(jk_worker_t *)malloc(sizeof(jk_worker_t));
  -   
  +    jk_worker_t *w=(jk_worker_t *)pool->calloc(pool, sizeof(jk_worker_t));
  +
       l->jkLog(l, JK_LOG_DEBUG, "Into ajp14_worker_factory\n");
   
       if (name == NULL || w == NULL) {
           l->jkLog(l, JK_LOG_ERROR, "In ajp14_worker_factory, NULL parameters\n");
           return JK_FALSE;
       }
  -
  +    w->pool = pool;
       w->name = strdup(name);
       
       w->proto= AJP14_PROTO;
  @@ -176,15 +176,15 @@
        return JK_FALSE;
       }
        
  -    e->request = jk_b_new(&(e->pool));
  +    e->request = jk_b_new(e->pool);
       jk_b_set_buffer_size(e->request, DEF_BUFFER_SZ); 
       jk_b_reset(e->request);
       
  -    e->reply = jk_b_new(&(e->pool));
  +    e->reply = jk_b_new(e->pool);
       jk_b_set_buffer_size(e->reply, DEF_BUFFER_SZ);
       jk_b_reset(e->reply); 
        
  -    e->post = jk_b_new(&(e->pool));
  +    e->post = jk_b_new(e->pool);
       jk_b_set_buffer_size(e->post, DEF_BUFFER_SZ);
       jk_b_reset(e->post); 
       
  @@ -311,14 +311,11 @@
        /* Create a default channel */
        jk_env_t *env= we->env;
   
  -     jk_env_objectFactory_t fac = 
  -         (jk_env_objectFactory_t)env->getFactory(env, "channel", "socket" );
  -     l->jkLog( l, JK_LOG_DEBUG, "Got socket channel factory \n");
  -
  -     err=fac( env, (void **)&pThis->channel, "channel", "socket" );
  -     if( err != JK_TRUE ) {
  -         l->jkLog(l, JK_LOG_ERROR, "Error creating socket factory\n");
  -         return err;
  +     pThis->channel=env->getInstance(env, pThis->pool,"channel", "socket" );
  +
  +     if( pThis->channel == NULL ) {
  +         l->jkLog(l, JK_LOG_ERROR, "Error creating socket channel\n");
  +         return JK_FALSE;
        }
        l->jkLog(l, JK_LOG_ERROR, "Got channel %lx %lx\n", pThis, pThis->channel);
       }
  @@ -385,7 +382,8 @@
                               jk_logger_t    *l)
   {
       jk_endpoint_t *ae = NULL;
  -
  +    jk_pool_t *endpointPool;
  +    
       if( _this->login->secret_key ==NULL ) {
       }
   
  @@ -413,14 +411,19 @@
           }
       }
   
  -    ae = (jk_endpoint_t *)malloc(sizeof(jk_endpoint_t));
  -    if (!ae) {
  +    endpointPool = _this->pool->create( _this->pool, HUGE_POOL_SIZE );
  +    
  +    ae = (jk_endpoint_t *)endpointPool->alloc(endpointPool,
  +                                              sizeof(jk_endpoint_t));
  +    if (ae==NULL) {
           l->jkLog(l, JK_LOG_ERROR, "ajp14.get_endpoint OutOfMemoryException\n");
           return JK_FALSE;
       }
       
       ae->reuse = JK_FALSE;
  -    jk_open_pool(&ae->pool, ae->buf, sizeof(ae->buf));
  +
  +    ae->pool = endpointPool;
  +
       ae->worker = _this;
       ae->proto = _this->proto;
       ae->channelData = NULL;
  
  
  
  1.7       +24 -26    jakarta-tomcat-connectors/jk/native2/common/jk_jni_worker.c
  
  Index: jk_jni_worker.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_jni_worker.c,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- jk_jni_worker.c   2001/12/05 20:48:20     1.6
  +++ jk_jni_worker.c   2001/12/06 22:54:44     1.7
  @@ -59,7 +59,7 @@
    * Description: In process JNI worker                                      *
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           *
    * Based on:                                                               *
  - * Version:     $Revision: 1.6 $                                           *
  + * Version:     $Revision: 1.7 $                                           *
    ***************************************************************************/
   
   #if !defined(WIN32) && !defined(NETWARE)
  @@ -105,8 +105,7 @@
       int was_verified;
       int was_initialized;
   
  -    jk_pool_t p;
  -    jk_pool_atom_t buf[TINY_POOL_SIZE];
  +    jk_pool_t *pool;
   
       /*
        * JVM Object pointer.
  @@ -193,7 +192,7 @@
   };
   typedef struct jni_endpoint jni_endpoint_t;
   
  -int JK_METHOD jk_worker_jni_factory(jk_env_t *env, void **result,
  +int JK_METHOD jk_worker_jni_factory(jk_env_t *env, jk_pool_t *pool, void **result,
                                       char *type, char *name);
   
   static int load_jvm_dll(jni_worker_t *p,
  @@ -463,7 +462,7 @@
   
       str_config= map_getStrProp( props, "worker", p->name, "class_path", NULL );
       if(str_config != NULL ) {
  -        p->tomcat_classpath = p->p.pstrdup(&p->p, str_config);
  +        p->tomcat_classpath = p->pool->pstrdup(p->pool, str_config);
       }
   
       if(!p->tomcat_classpath) {
  @@ -473,7 +472,7 @@
   
       str_config= map_getStrProp( props, "worker", p->name, "jvm_lib", NULL );
       if(str_config != NULL ) {
  -        p->jvm_dll_path  = p->p.pstrdup(&p->p, str_config);
  +        p->jvm_dll_path  = p->pool->pstrdup(p->pool, str_config);
       }
   
       if(!p->jvm_dll_path || !jk_file_exists(p->jvm_dll_path)) {
  @@ -483,29 +482,29 @@
   
       str_config= map_getStrProp( props, "worker", p->name, "cmd_line", NULL ); 
       if(str_config != NULL ) {
  -        p->tomcat_cmd_line  = p->p.pstrdup(&p->p, str_config);
  +        p->tomcat_cmd_line  = p->pool->pstrdup(p->pool, str_config);
       }
   
       str_config=  map_getStrProp( props, "worker", p->name, "stdout", NULL ); 
       if(str_config!= NULL ) {
  -        p->stdout_name  = p->p.pstrdup(&p->p, str_config);
  +        p->stdout_name  = p->pool->pstrdup(p->pool, str_config);
       }
   
       str_config=  map_getStrProp( props, "worker", p->name, "stderr", NULL ); 
       if(str_config!= NULL ) {
  -        p->stderr_name  = p->p.pstrdup(&p->p, str_config);
  +        p->stderr_name  = p->pool->pstrdup(p->pool, str_config);
       }
   
       str_config=  map_getStrProp( props, "worker", p->name, "sysprops", NULL ); 
       if(str_config!= NULL ) {
  -        p->sysprops  = jk_parse_sysprops(&p->p, str_config);
  +        p->sysprops  = jk_parse_sysprops(p->pool, str_config);
       }
   
   #ifdef JNI_VERSION_1_2
       str_config= map_getStrProp( props, "worker", p->name, "java2opts", NULL );
       if( str_config != NULL ) {
        /* l->jkLog(l, JK_LOG_DEBUG, "Got opts: %s\n", str_config); */
  -        p->java2opts = jk_parse_sysprops(&p->p, str_config);
  +        p->java2opts = jk_parse_sysprops(p->pool, str_config);
       }
       mem_config= map_getIntProp( props, "worker", p->name, "java2lax", -1 );
       if(mem_config != -1 ) {
  @@ -515,7 +514,7 @@
   
       str_config=  map_getStrProp( props, "worker", p->name, "ld_path", NULL ); 
       if(str_config!= NULL ) {
  -        jk_append_libpath(&p->p, str_config);
  +        jk_append_libpath(p->pool, str_config);
       }
   
       if(!load_jvm_dll(p, l)) {
  @@ -699,7 +698,7 @@
           detach_from_jvm(p, l);
       }
   
  -    p->p.close(&p->p);
  +    p->pool->close(p->pool);
       free(p);
   
       l->jkLog(l, JK_LOG_DEBUG, "Done destroy\n");
  @@ -707,7 +706,7 @@
       return JK_TRUE;
   }
   
  -int JK_METHOD jk_worker_jni_factory(jk_env_t *env, void **result,
  +int JK_METHOD jk_worker_jni_factory(jk_env_t *env, jk_pool_t *pool, void **result,
                                       char *type, char *name)
   {
       jk_logger_t *l=env->logger;
  @@ -728,7 +727,7 @@
           return JK_TRUE;
       }
   
  -    private_data = (jni_worker_t *)malloc(sizeof(jni_worker_t ));
  +    private_data = (jni_worker_t *)pool->calloc(pool, sizeof(jni_worker_t ));
   
       if(!private_data) {
            l->jkLog(l, JK_LOG_ERROR, 
  @@ -736,16 +735,14 @@
            return JK_FALSE;
       }
   
  -    jk_open_pool(&private_data->p,
  -                 private_data->buf,
  -                 sizeof(jk_pool_atom_t) * TINY_POOL_SIZE);
  -
  -    private_data->name = private_data->p.pstrdup(&private_data->p, name);
  +    private_data->pool=pool;
  +    
  +    private_data->name = private_data->pool->pstrdup(private_data->pool, name);
   
       if(!private_data->name) {
           l->jkLog(l, JK_LOG_ERROR, 
                    "In jni_worker_factory, memory allocation error\n");
  -        private_data->p.close(&private_data->p);
  +        private_data->pool->close(private_data->pool);
           free(private_data);
           return JK_FALSE;
       }
  @@ -780,6 +777,7 @@
   
       *result = &private_data->worker;
       the_singleton_jni_worker = &private_data->worker;
  +    private_data->worker.pool=pool;
   
       l->jkLog(l, JK_LOG_DEBUG, "Done jni_worker_factory\n");
       return JK_TRUE;
  @@ -908,7 +906,7 @@
           unsigned len = strlen(vm_args.classpath) + 
                          strlen(p->tomcat_classpath) + 
                          3;
  -        char *tmp = p->p.alloc(&p->p, len);
  +        char *tmp = p->pool->alloc(p->pool, len);
           if(tmp) {
               sprintf(tmp, "%s%c%s", 
                       p->tomcat_classpath, 
  @@ -1047,21 +1045,21 @@
   
       if(p->tomcat_classpath) {
        l->jkLog(l, JK_LOG_DEBUG, "In open_jvm2, setting classpath to %s\n", 
p->tomcat_classpath);
  -         tmp = build_opt_str(&p->p, "-Djava.class.path=", p->tomcat_classpath, l);
  +         tmp = build_opt_str(p->pool, "-Djava.class.path=", p->tomcat_classpath, l);
            null_check(tmp);
           options[optn++].optionString = tmp;
       }
   
       if(p->tomcat_mx) {
            l->jkLog(l, JK_LOG_DEBUG, "In open_jvm2, setting max heap to %d\n", 
p->tomcat_mx);
  -     tmp = build_opt_int(&p->p, "-Xmx", p->tomcat_mx, l);
  +     tmp = build_opt_int(p->pool, "-Xmx", p->tomcat_mx, l);
            null_check(tmp);
           options[optn++].optionString = tmp;
       }
   
       if(p->tomcat_ms) {
        l->jkLog(l, JK_LOG_DEBUG, "In open_jvm2, setting start heap to %d\n", 
p->tomcat_ms);
  -        tmp = build_opt_int(&p->p, "-Xms", p->tomcat_ms, l);
  +        tmp = build_opt_int(p->pool, "-Xms", p->tomcat_ms, l);
            null_check(tmp);
           options[optn++].optionString = tmp;
       }
  @@ -1070,7 +1068,7 @@
            int i = 0;
            while(p->sysprops[i]) {
                l->jkLog(l, JK_LOG_DEBUG, "In open_jvm2, setting %s\n", 
p->sysprops[i]);
  -             tmp = build_opt_str(&p->p, "-D", p->sysprops[i], l);
  +             tmp = build_opt_str(p->pool, "-D", p->sysprops[i], l);
                null_check(tmp);
                options[optn++].optionString = tmp;
                i++;
  
  
  
  1.5       +33 -29    jakarta-tomcat-connectors/jk/native2/common/jk_channel_socket.c
  
  Index: jk_channel_socket.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_socket.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_channel_socket.c       2001/12/05 20:48:20     1.4
  +++ jk_channel_socket.c       2001/12/06 22:54:44     1.5
  @@ -80,6 +80,8 @@
        #define closesocket                     close
   #endif
   
  +#define DEFAULT_HOST "127.0.0.1"
  +
   /** Information specific for the socket channel
    */
   struct jk_channel_socket_private {
  @@ -105,8 +107,9 @@
     XXX We could also use properties or 'notes'
   */
   
  -int JK_METHOD jk_channel_socket_factory(jk_env_t *env, void **result,
  -                                     char *type, char *name);
  +int JK_METHOD jk_channel_socket_factory(jk_env_t *env, jk_pool_t *pool,
  +                                        void **result,
  +                                     const char *type, const char *name);
   
   static int JK_METHOD jk_channel_socket_resolve(char *host, short port,
                                     struct sockaddr_in *rc);
  @@ -156,8 +159,10 @@
       host = map_getStrProp( props, "worker", worker_name, "host", host);
   
       _this->worker=worker;
  -    _this->logger=l;
       _this->properties=props;
  +
  +    if( host==NULL )
  +        host=DEFAULT_HOST;
       
       err=jk_channel_socket_resolve( host, port, rc );
       if( err!= JK_TRUE ) {
  @@ -226,7 +231,7 @@
   static int JK_METHOD jk_channel_socket_open(jk_channel_t *_this,
                                               jk_endpoint_t *endpoint)
   {
  -    jk_logger_t *l=_this->logger;
  +    jk_logger_t *l=_this->worker->workerEnv->l;
       int err=l->jkLog(l, JK_LOG_DEBUG, "Into jk_channel_socket_open\n");
       jk_channel_socket_private_t *socketInfo=
        (jk_channel_socket_private_t *)(_this->_privatePtr);
  @@ -394,39 +399,38 @@
   
   
   
  -int JK_METHOD jk_channel_socket_factory(jk_env_t *env,
  -                                        void **result,
  -                                     char *type,
  -                                        char *name)
  +int JK_METHOD jk_channel_socket_factory(jk_env_t *env, jk_pool_t *pool, void 
**result,
  +                                     const char *type, const char *name)
   {
  -    jk_channel_t *channel;
  +    jk_channel_t *_this;
       
       if( strcmp( "channel", type ) != 0 ) {
        /* Wrong type  XXX throw */
        *result=NULL;
        return JK_FALSE;
       }
  -    channel=(jk_channel_t *)malloc( sizeof( jk_channel_t));
  -    channel->_privatePtr= (jk_channel_socket_private_t *)
  -     malloc( sizeof( jk_channel_socket_private_t));
  -
  -    channel->recv= &jk_channel_socket_recv; 
  -    channel->send= &jk_channel_socket_send; 
  -    channel->init= &jk_channel_socket_init; 
  -    channel->open= &jk_channel_socket_open; 
  -    channel->close= &jk_channel_socket_close; 
  -    channel->getProperty= &jk_channel_socket_getProperty; 
  -    channel->setProperty= &jk_channel_socket_setProperty; 
  -
  -    channel->supportedProperties=( char ** )malloc( 4 * sizeof( char * ));
  -    channel->supportedProperties[0]="host";
  -    channel->supportedProperties[1]="port";
  -    channel->supportedProperties[2]="defaultPort";
  -    channel->supportedProperties[3]="\0";
  -
  -    channel->name="file";
  +    _this=(jk_channel_t *)pool->alloc(pool, sizeof( jk_channel_t));
       
  -    *result= channel;
  +    _this->_privatePtr= (jk_channel_socket_private_t *)
  +     pool->alloc( pool, sizeof( jk_channel_socket_private_t));
  +
  +    _this->recv= &jk_channel_socket_recv; 
  +    _this->send= &jk_channel_socket_send; 
  +    _this->init= &jk_channel_socket_init; 
  +    _this->open= &jk_channel_socket_open; 
  +    _this->close= &jk_channel_socket_close; 
  +    _this->getProperty= &jk_channel_socket_getProperty; 
  +    _this->setProperty= &jk_channel_socket_setProperty; 
  +
  +    _this->supportedProperties=( char ** )pool->alloc( pool, 4 * sizeof( char * ));
  +    _this->supportedProperties[0]="host";
  +    _this->supportedProperties[1]="port";
  +    _this->supportedProperties[2]="defaultPort";
  +    _this->supportedProperties[3]="\0";
  +
  +    _this->name="file";
  +
  +    *result= _this;
       
       return JK_TRUE;
   }
  
  
  
  1.4       +5 -4      jakarta-tomcat-connectors/jk/native2/common/jk_endpoint.c
  
  Index: jk_endpoint.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_endpoint.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- jk_endpoint.c     2001/12/05 20:48:20     1.3
  +++ jk_endpoint.c     2001/12/06 22:54:44     1.4
  @@ -59,7 +59,7 @@
    * Description: common stuff for bi-directional protocols ajp13/ajp14.     *
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           *
    * Author:      Henri Gomez <[EMAIL PROTECTED]>                               *
  - * Version:     $Revision: 1.3 $                                           *
  + * Version:     $Revision: 1.4 $                                           *
    ***************************************************************************/
   
   
  @@ -86,7 +86,7 @@
   void ajp_reset_endpoint(jk_endpoint_t *ae)
   {
       ae->reuse = JK_FALSE;
  -    ae->pool.reset( &ae->pool );
  +    ae->pool->reset( ae->pool );
   }
   
   /*
  @@ -98,7 +98,7 @@
       l->jkLog(l, JK_LOG_DEBUG, "In jk_endpoint_t::ajp_close_endpoint\n");
   
       ajp_reset_endpoint(ae);
  -    ae->pool.close( &ae->pool );
  +    ae->pool->close( ae->pool );
       {
        jk_channel_t *channel=ae->worker->channel;
        int err=channel->close( channel, ae );
  @@ -429,7 +429,7 @@
   
       switch(code) {
       case JK_AJP13_SEND_HEADERS:
  -        err=ajp_handle_response( msg, r, ae, l );
  +        err=ajp_handle_startResponse( msg, r, ae, l );
           return err;
           break;
           
  @@ -511,6 +511,7 @@
               l->jkLog(l, JK_LOG_ERROR, "Error reading reply\n");
               /* we just can't recover, unset recover flag */
               return JK_FALSE;
  +
           }
           
           rc = ajp_process_callback(e->reply, e->post, e, s, l);
  
  
  
  1.4       +7 -6      jakarta-tomcat-connectors/jk/native2/common/jk_env.c
  
  Index: jk_env.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_env.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- jk_env.c  2001/12/05 20:48:20     1.3
  +++ jk_env.c  2001/12/06 22:54:44     1.4
  @@ -68,9 +68,10 @@
      The env will provide access to pools, etc 
   */
   
  -jk_env_t* JK_METHOD jk_env_getEnv( char *id ) {
  +jk_env_t* JK_METHOD jk_env_getEnv( char *id, jk_pool_t *pool ) {
     if( jk_env_singleton == NULL ) {
  -    jk_env_singleton=(jk_env_t *)calloc( 1, sizeof( jk_env_t ));
  +    jk_env_singleton=(jk_env_t *)pool->calloc( pool, sizeof( jk_env_t ));
  +    jk_env_singleton->globalPool = pool;
       jk_env_initEnv( (jk_env_t *)jk_env_singleton, id );
     }
     return jk_env_singleton;
  @@ -101,7 +102,7 @@
     return result;
   }
   
  -static void *jk_env_getInstance( jk_env_t *_this, const char *type, const char 
*name )
  +static void *jk_env_getInstance( jk_env_t *_this, jk_pool_t *pool, const char 
*type, const char *name )
   {
       jk_env_objectFactory_t fac;
       void *result;
  @@ -114,7 +115,7 @@
           return NULL;
       }
   
  -    fac( _this, &result, type, name );
  +    fac( _this, pool, &result, type, name );
       if( result==NULL ) {
           if( _this->logger )
               _this->logger->jkLog(_this->logger, JK_LOG_ERROR,
  @@ -135,7 +136,7 @@
     char *typeName;
     int size=( sizeof( char ) * (strlen(name) + strlen(type) + 2 ));
   
  -  typeName=(char *)calloc(size, sizeof(char));
  +  typeName=(char *)env->globalPool->calloc(env->globalPool, size);
   
   
     strcpy(typeName, type );
  @@ -150,7 +151,7 @@
     env->getFactory= jk_env_getFactory; 
     env->registerFactory= jk_env_registerFactory;
     env->getInstance= jk_env_getInstance; 
  -  map_alloc( & env->_registry);
  +  map_alloc( & env->_registry, env->globalPool );
     jk_registry_init(env);
   }
   
  
  
  
  1.5       +2 -2      jakarta-tomcat-connectors/jk/native2/common/jk_handler_logon.c
  
  Index: jk_handler_logon.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_handler_logon.c,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_handler_logon.c        2001/12/05 20:48:20     1.4
  +++ jk_handler_logon.c        2001/12/06 22:54:44     1.5
  @@ -58,7 +58,7 @@
   /**
    * Description: AJP14 Login handler
    * Author:      Henri Gomez <[EMAIL PROTECTED]>
  - * Version:     $Revision: 1.4 $                                          
  + * Version:     $Revision: 1.5 $                                          
    */
   
   #include "jk_global.h"
  @@ -224,7 +224,7 @@
   static int jk_handler_logon_logon(jk_endpoint_t *ae,
                              jk_logger_t    *l)
   {
  -    jk_pool_t     *p = &ae->pool;
  +    jk_pool_t     *p = ae->pool;
       jk_msg_buf_t  *msg;
       int        rc;
       
  
  
  
  1.4       +1 -1      
jakarta-tomcat-connectors/jk/native2/common/jk_handler_response.c
  
  Index: jk_handler_response.c
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_handler_response.c,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- jk_handler_response.c     2001/12/05 20:48:20     1.3
  +++ jk_handler_response.c     2001/12/06 22:54:44     1.4
  @@ -190,7 +190,7 @@
                                     jk_endpoint_t *ae,
                                     jk_logger_t    *l)
   {
  -    jk_pool_t * p = &ae->pool;
  +    jk_pool_t * p = ae->pool;
   
       s->status = jk_b_get_int(msg);
   
  
  
  
  1.6       +17 -7     jakarta-tomcat-connectors/jk/native2/common/jk_lb_worker.c
  
  Index: jk_lb_worker.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_lb_worker.c,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- jk_lb_worker.c    2001/12/05 20:46:47     1.5
  +++ jk_lb_worker.c    2001/12/06 22:54:44     1.6
  @@ -60,7 +60,7 @@
    *              several workers.                                           *
    * Author:      Gal Shachor <[EMAIL PROTECTED]>                           *
    * Based on:                                                               *
  - * Version:     $Revision: 1.5 $                                           *
  + * Version:     $Revision: 1.6 $                                           *
    ***************************************************************************/
   
   #include "jk_pool.h"
  @@ -78,6 +78,7 @@
   #define ADDITINAL_WAIT_LOAD (20)
   
   int JK_METHOD jk_worker_lb_factory(jk_env_t *env,
  +                                   jk_pool_t *pool,
                                      void **result,
                                      char *type,
                                      char *name);
  @@ -348,27 +349,33 @@
       return JK_TRUE;
   }
   
  -static int JK_METHOD get_endpoint(jk_worker_t *pThis,
  +static int JK_METHOD get_endpoint(jk_worker_t *_this,
                                     jk_endpoint_t **pend,
                                     jk_logger_t *l)
   {
       jk_endpoint_t *e;
  +    jk_pool_t *endpointPool;
       
       l->jkLog(l, JK_LOG_DEBUG, "lb_worker.getEndpoint()\n");
   
  -    if(pThis==NULL || pend==NULL ) {        
  +    if(_this==NULL || pend==NULL ) {        
           l->jkLog(l, JK_LOG_ERROR, 
                  "lb_worker.getEndpoint() NPE\n");
       }
   
  -    e = (jk_endpoint_t *)malloc(sizeof(jk_endpoint_t));
  +    endpointPool=_this->pool->create( _this->pool, HUGE_POOL_SIZE);
  +    
  +    e = (jk_endpoint_t *)endpointPool->calloc(endpointPool,
  +                                              sizeof(jk_endpoint_t));
       if(e==NULL) {
           l->jkLog(l, JK_LOG_ERROR, 
                    "lb_worker.getEndpoint() OutOfMemoryException\n");
           return JK_FALSE;
       }
  +
  +    e->pool = endpointPool;
       
  -    e->worker = pThis;
  +    e->worker = _this;
       e->service = service;
       e->done = done;
       e->channelData = NULL;
  @@ -403,6 +410,7 @@
   
   
   int JK_METHOD jk_worker_lb_factory(jk_env_t *env,
  +                                   jk_pool_t *pool,
                                      void **result,
                                      char *type,
                                      char *name)
  @@ -412,17 +420,19 @@
       
       l->jkLog(l, JK_LOG_DEBUG, "lb_worker.factory()\n");
   
  -    if(NULL != name ) {
  +    if(NULL == name ) {
           l->jkLog(l, JK_LOG_ERROR,"lb_worker.factory() NullPointerException\n");
           return JK_FALSE;
       }
       
  -    _this = (jk_worker_t *)malloc(sizeof(jk_worker_t));
  +    _this = (jk_worker_t *)pool->calloc(pool, sizeof(jk_worker_t));
   
       if(_this==NULL) {
           l->jkLog(l, JK_LOG_ERROR,"lb_worker.factory() OutOfMemoryException\n");
           return JK_FALSE;
       }
  +
  +    _this->pool=pool;
   
       _this->lb_workers = NULL;
       _this->num_of_workers = 0;
  
  
  

--
To unsubscribe, e-mail:   <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>

Reply via email to