costin      02/05/14 13:41:05

  Modified:    jk/native2/common jk_worker_ajp13.c
  Log:
  Better management of endpoints for a worker.
  
  Revision  Changes    Path
  1.20      +34 -10    jakarta-tomcat-connectors/jk/native2/common/jk_worker_ajp13.c
  
  Index: jk_worker_ajp13.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_worker_ajp13.c,v
  retrieving revision 1.19
  retrieving revision 1.20
  diff -u -r1.19 -r1.20
  --- jk_worker_ajp13.c 14 May 2002 17:21:09 -0000      1.19
  +++ jk_worker_ajp13.c 14 May 2002 20:41:05 -0000      1.20
  @@ -571,6 +571,7 @@
       jk_endpoint_t *e = NULL;
       jk_pool_t *endpointPool;
       jk_bean_t *jkb;
  +    int csOk;
       
       if( ajp14->secret ==NULL ) {
       }
  @@ -587,19 +588,35 @@
           return JK_OK;
       }
   
  -    jkb=env->createBean2( env, ajp14->mbean->pool,  "endpoint", NULL );
  -    if( jkb==NULL )
  -        return JK_ERR;
  +    JK_ENTER_CS(&ajp14->cs, csOk);
  +    if( !csOk ) return JK_ERR;
  +
  +    {
  +        char *epName=ajp14->mbean->pool->calloc( env, ajp14->mbean->pool, 20);
  +
  +        sprintf( epName, "%d", ajp14->endpointMap->size( env, ajp14->endpointMap ));
  +        
  +        jkb=env->createBean2( env, ajp14->mbean->pool,  "endpoint", epName );
  +        if( jkb==NULL ) {
  +            JK_LEAVE_CS( &ajp14->cs, csOk );
  +            return JK_ERR;
  +        }
  +    
  +        e = (jk_endpoint_t *)jkb->object;
  +        e->worker = ajp14;
  +        e->sd=-1;
  +
  +        ajp14->endpointMap->add( env, ajp14->endpointMap, epName, jkb );
  +                                 
  +        *eP = e;
  +    }
  +    JK_LEAVE_CS( &ajp14->cs, csOk );
  +        
       if( ajp14->mbean->debug > 0 )
           env->l->jkLog(env, env->l, JK_LOG_INFO,
  -                      "ajp14.getEndpoint(): Creating endpoint %s %s \n",
  +                      "ajp14.getEndpoint(): Created endpoint %s %s \n",
                         ajp14->mbean->name, jkb->name);
       
  -    e = (jk_endpoint_t *)jkb->object;
  -    e->worker = ajp14;
  -    e->sd=-1;
  -
  -    *eP = e;
       return JK_OK;
   }
   
  @@ -762,16 +779,23 @@
                                           const char *type, const char *name)
   {
       jk_worker_t *w=(jk_worker_t *)pool->calloc(env, pool, sizeof(jk_worker_t));
  +    int i;
   
       if (name == NULL || w == NULL) {
           env->l->jkLog(env, env->l, JK_LOG_ERROR,
                         "ajp14.factory() NullPointerException\n");
           return JK_ERR;
       }
  -    w->cache_sz=-1;
   
       jk2_map_default_create(env, &w->groups, pool);
  +    jk2_map_default_create(env, &w->endpointMap, pool);
   
  +    JK_INIT_CS(&(w->cs), i);
  +    if (i!=JK_TRUE) {
  +        env->l->jkLog(env, env->l, JK_LOG_ERROR,
  +                      "objCache.create(): Can't init CS\n");
  +    }
  +    
       w->endpointCache= NULL;
   
       w->channel= NULL;
  
  
  

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

Reply via email to