You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by jf...@apache.org on 2002/06/12 14:40:17 UTC

cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_shm.c jk_workerEnv.c jk_worker_ajp13.c

jfclere     2002/06/12 05:40:17

  Modified:    jk/native2/common jk_shm.c jk_workerEnv.c jk_worker_ajp13.c
  Log:
  Prevent the core when getSlot() failed.
  
  Revision  Changes    Path
  1.27      +10 -8     jakarta-tomcat-connectors/jk/native2/common/jk_shm.c
  
  Index: jk_shm.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_shm.c,v
  retrieving revision 1.26
  retrieving revision 1.27
  diff -u -r1.26 -r1.27
  --- jk_shm.c	10 Jun 2002 21:55:06 -0000	1.26
  +++ jk_shm.c	12 Jun 2002 12:40:17 -0000	1.27
  @@ -447,16 +447,18 @@
       int slotId;
       int i;
       jk_shm_slot_t *slot;
  -    
  -    for( i=1; i<shm->head->lastSlot; i++ ) {
  -        slot= shm->getSlot( env, shm, i );
  -        if( strncmp( slot->name, name, strlen(name) ) == 0 ) {
  -            return slot;
  +   
  +    if (shm->head!=NULL) { 
  +        for( i=1; i<shm->head->lastSlot; i++ ) {
  +            slot= shm->getSlot( env, shm, i );
  +            if( strncmp( slot->name, name, strlen(name) ) == 0 ) {
  +                return slot;
  +            }
           }
  +        /* New slot */
  +        /* XXX interprocess sync */
  +        slotId=shm->head->lastSlot++;
       }
  -    /* New slot */
  -    /* XXX interprocess sync */
  -    slotId=shm->head->lastSlot++;
       slot=shm->getSlot( env, shm, slotId );
   
       if( slot==NULL ) return NULL;
  
  
  
  1.54      +3 -2      jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c
  
  Index: jk_workerEnv.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_workerEnv.c,v
  retrieving revision 1.53
  retrieving revision 1.54
  diff -u -r1.53 -r1.54
  --- jk_workerEnv.c	10 Jun 2002 21:55:06 -0000	1.53
  +++ jk_workerEnv.c	12 Jun 2002 12:40:17 -0000	1.54
  @@ -580,7 +580,8 @@
       wEnv->endpointMap->add( env, wEnv->endpointMap, ep->mbean->localName, ep );
       ep->mbean->id=pos;
       
  -    ep->mbean->init( env, ep->mbean );
  +    if (ep->mbean->init( env, ep->mbean )==JK_ERR)
  +        return JK_ERR;
   
       return JK_OK;
   }
  
  
  
  1.32      +14 -5     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.31
  retrieving revision 1.32
  diff -u -r1.31 -r1.32
  --- jk_worker_ajp13.c	10 Jun 2002 21:55:06 -0000	1.31
  +++ jk_worker_ajp13.c	12 Jun 2002 12:40:17 -0000	1.32
  @@ -561,6 +561,7 @@
   {
       jk_endpoint_t *e = NULL;
       jk_bean_t *jkb;
  +    int ret;
       
       if( ajp13->secret ==NULL ) {
       }
  @@ -596,17 +597,23 @@
                                    
           *eP = e;
   
  -        ajp13->workerEnv->addEndpoint( env, ajp13->workerEnv, e );
  +        ret = ajp13->workerEnv->addEndpoint( env, ajp13->workerEnv, e );
       }
       if( ajp13->cs != NULL ) 
           ajp13->cs->unLock( env, ajp13->cs );
           
  -    if( ajp13->mbean->debug > 0 )
  -        env->l->jkLog(env, env->l, JK_LOG_INFO,
  +    if( ajp13->mbean->debug > 0 ) {
  +        if (ret==JK_OK)
  +            env->l->jkLog(env, env->l, JK_LOG_INFO,
                         "ajp13.getEndpoint(): Created endpoint %s %s \n",
                         ajp13->mbean->name, jkb->name);
  +        else
  +            env->l->jkLog(env, env->l, JK_LOG_INFO,
  +                      "ajp13.getEndpoint(): endpoint creation %s %s failed\n",
  +                      ajp13->mbean->name, jkb->name);
  +    }
       
  -    return JK_OK;
  +    return ret;
   }
   
   /*
  @@ -620,7 +627,9 @@
       jk_endpoint_t   *e;
   
       /* Get endpoint from the pool */
  -    jk2_worker_ajp13_getEndpoint( env, w, &e );
  +    err=jk2_worker_ajp13_getEndpoint( env, w, &e );
  +    if  (err!=JK_OK)
  +      return err;
   
   #ifdef HAS_APR
       if( s->uriEnv!=NULL && s->uriEnv->timing == JK_TRUE ) {
  
  
  

--
To unsubscribe, e-mail:   <ma...@jakarta.apache.org>
For additional commands, e-mail: <ma...@jakarta.apache.org>