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/03/18 19:42:50 UTC

cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_map.c

costin      02/03/18 10:42:50

  Modified:    jk/native2/common jk_map.c
  Log:
  Remove the config-related methods. This is just a map now
  
  Revision  Changes    Path
  1.15      +2 -429    jakarta-tomcat-connectors/jk/native2/common/jk_map.c
  
  Index: jk_map.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_map.c,v
  retrieving revision 1.14
  retrieving revision 1.15
  diff -u -r1.14 -r1.15
  --- jk_map.c	21 Feb 2002 11:11:15 -0000	1.14
  +++ jk_map.c	18 Mar 2002 18:42:50 -0000	1.15
  @@ -58,7 +58,7 @@
   /***************************************************************************
    * Description: General purpose map object                                 *
    * Author:      Gal Shachor <sh...@il.ibm.com>                           *
  - * Version:     $Revision: 1.14 $                                           *
  + * Version:     $Revision: 1.15 $                                           *
    ***************************************************************************/
   
   #include "jk_global.h"
  @@ -78,8 +78,6 @@
   } jk_map_private_t;
   
   static int  jk2_map_default_realloc(jk_env_t *env, jk_map_t *m);
  -static void jk2_trim_prp_comment(char *prp);
  -static int  jk2_trim(char *s);
   
   static void *jk2_map_default_get(jk_env_t *env, jk_map_t *m,
                                    const char *name)
  @@ -225,7 +223,7 @@
   
   }
   
  -int jk2_map_append(jk_env_t *env, jk_map_t * dst, jk_map_t * src )
  +static int jk2_map_append(jk_env_t *env, jk_map_t * dst, jk_map_t * src )
   {
       /* This was badly broken in the original ! */
       int sz = src->size(env, src);
  @@ -242,398 +240,7 @@
       }
       return JK_TRUE;
   }
  -
  -
  -/* ==================== */
  -/* General purpose map utils - independent of the map impl */
  -
  -
  -char *jk2_map_getString(jk_env_t *env, jk_map_t *m,
  -                        const char *name, char *def)
  -{
  -    char *val= m->get( env, m, name );
  -    if( val==NULL )
  -        return def;
  -    return val;
  -}
  -
  -int jk2_map_getBool(jk_env_t *env, jk_map_t *m,
  -                    const char *prop, const char *def)
  -{
  -    char *val=jk2_map_getString( env, m, prop, (char *)def );
  -
  -    if( val==NULL )
  -        return JK_FALSE;
  -
  -    if( strcmp( val, "1" ) == 0 ||
  -        strcasecmp( val, "TRUE" ) == 0 ||
  -        strcasecmp( val, "ON" ) == 0 ) {
  -        return JK_TRUE;
  -    }
  -    return JK_FALSE;
  -}
  -
  -/** Get a string property, using the worker's style
  -    for properties.
  -    Example worker.ajp13.host=localhost.
  -*/
  -char *jk2_map_getStrProp(jk_env_t *env, jk_map_t *m,
  -                         const char *objType, const char *objName,
  -                         const char *pname,
  -                         char *def)
  -{
  -    char buf[1024];
  -    char *res;
  -
  -    if( m==NULL || objName==NULL || pname==NULL ) {
  -        return def;
  -    }
  -    if( objType==NULL ) 
  -        sprintf(buf, "%s.%s", objName, pname);
  -    else
  -        sprintf(buf, "%s.%s.%s", objType, objName, pname);
  -    res = m->get(env, m, buf );
  -    if (res==NULL)
  -        return(def);
  -    return res;
  -}
  -
  -int jk2_map_getIntProp(jk_env_t *env, jk_map_t *m,
  -                       const char *objType, const char *objName,
  -                       const char *pname,
  -                       int def)
  -{
  -    char *val=jk2_map_getStrProp( env, m, objType, objName, pname, NULL );
  -
  -    if( val==NULL )
  -        return def;
  -
  -    return jk2_map_str2int( env, val );
  -}
  -
  -/* ==================== */
  -/* Conversions */
  -
  -/* Convert a string to int, using 'M', 'K' suffixes
  - */
  -int jk2_map_str2int(jk_env_t *env, char *val )
  -{   /* map2int:
  -       char *v=getString();
  -       return (c==NULL) ? def : str2int( v );
  -    */ 
  -    int  len;
  -    int  int_res;
  -    char org='\0';
  -    int  multit = 1;
  -    char *lastchar;
  -
  -    if( val==NULL ) return 0;
  -    
  -    /* sprintf(buf, "%d", def); */
  -    /* rc = map_get_string(m, name, buf); */
  -
  -    len = strlen(val);
  -    if(len==0)
  -        return 0;
  -    
  -    lastchar = val + len - 1;
  -    if('m' == *lastchar || 'M' == *lastchar) {
  -        org=*lastchar;
  -        *lastchar = '\0';
  -        multit = 1024 * 1024;
  -    } else if('k' == *lastchar || 'K' == *lastchar) {
  -        org=*lastchar;
  -        *lastchar = '\0';
  -        multit = 1024;
  -    }
  -
  -    int_res = atoi(val);
  -    if( org!='\0' )
  -        *lastchar=org;
  -
  -    return int_res * multit;
  -}
  -
  -char **jk2_map_split(jk_env_t *env, jk_map_t *m,
  -                     jk_pool_t *pool,
  -                     const char *listStr,
  -                     const char *sep,
  -                     unsigned *list_len )
  -{
  -    char **ar = NULL;
  -    unsigned capacity = 0;
  -    unsigned idex = 0;    
  -    char *v;
  -    char *l;
  -
  -    if( sep==NULL )
  -        sep=" \t,*";
  -    
  -    if( pool == NULL && m!=NULL )
  -        pool=m->pool;
  -
  -    if( list_len != NULL )
  -        *list_len = 0;
  -
  -    if(listStr==NULL)
  -        return NULL;
  -
  -    v = pool->pstrdup( env, pool, listStr);
  -    
  -    if(v==NULL) {
  -        return NULL;
  -    }
  -
  -    /*
  -     * GS, in addition to VG's patch, we now need to 
  -     * strtok also by a "*"
  -     */
  -
  -    for(l = strtok(v, sep) ; l ; l = strtok(NULL, sep)) {
  -        /* We want at least one space after idex for the null*/
  -        if(idex+1 >= capacity) {
  -            ar = pool->realloc(env, pool, 
  -                               sizeof(char *) * (capacity + 5),
  -                               ar,
  -                               sizeof(char *) * capacity);
  -            if(!ar) {
  -                return NULL;
  -            }
  -            capacity += 5;
  -        }
  -        ar[idex] = pool->pstrdup(env, pool, l);
  -        idex ++;
  -    }
  -
  -    /* Append a NULL, we have space */
  -    ar[idex]=NULL;
  -
  -    if( list_len != NULL )
  -        *list_len = idex;
  -
  -    return ar;
  -}
  -
  -
  -/* ==================== */
  -/*  Reading / parsing */
  -
  -int jk2_map_readFileProperties(jk_env_t *env, jk_map_t *m,
  -                               const char *f)
  -{
  -    int rc = JK_FALSE;
  -    FILE *fp;
  -    char buf[LENGTH_OF_LINE + 1];            
  -    char *prp;
  -    char *v;
  -        
  -    if(m==NULL || f==NULL )
  -        return JK_FALSE;
  -
  -    fp= fopen(f, "r");
  -        
  -    if(fp==NULL)
  -        return JK_FALSE;
  -
  -    rc = JK_TRUE;
  -
  -    while(NULL != (prp = fgets(buf, LENGTH_OF_LINE, fp))) {
  -        char *oldv;
  -        
  -        jk2_trim_prp_comment(prp);
  -
  -        if( jk2_trim(prp)==0 )
  -            continue;
  -
  -        v = strchr(prp, '=');
  -        if(v==NULL)
  -            continue;
  -        
  -        *v = '\0';
  -        v++;                        
  -
  -        if(strlen(v)==0 || strlen(prp)==0)
  -            continue;
  -
  -        v = jk2_map_replaceProperties(env, m, m->pool, v);
  -
  -        /* We don't contatenate the values - but use multi-value
  -           fields. This eliminates the ugly hack where readProperties
  -           tried to 'guess' the separator, and the code is much
  -           cleaner. If we have multi-valued props, it's better
  -           to deal with that instead of forcing a single-valued
  -           model.
  -        */
  -        m->add( env, m, m->pool->pstrdup(env, m->pool, prp),
  -                m->pool->pstrdup(env, m->pool, v));
  -    }
  -
  -    fclose(fp);
  -    return rc;
  -}
  -
  -/** For multi-value properties, return the concatenation
  - *  of all values.
  - *
  - * @param sep Separators used to separate multi-values and
  - *       when concatenating the values, NULL for none. The first
  - *       char will be used on the result, the other will be
  - *       used to split. ( i.e. the map may either have multiple
  - *       values or values separated by one of the sep's chars )
  - *    
  - */
  -char *jk2_map_getValuesString(jk_env_t *env, jk_map_t *m,
  -                              struct jk_pool *resultPool,
  -                              char *name,
  -                              char *sep )
  -{
  -    char **values;
  -    int valuesCount;
  -    int i;
  -    int len=0;
  -    int pos=0;
  -    int sepLen=0;
  -    char *result;
  -    char sepStr[2];
  -    
  -    if(sep==NULL)
  -        values=jk2_map_getValues( env, m, resultPool, name," \t,*", &valuesCount );
  -    else
  -        values=jk2_map_getValues( env, m, resultPool, name, sep, &valuesCount );
  -
  -    if( values==NULL ) return NULL;
  -    if( valuesCount<=0 ) return NULL;
  -
  -    if( sep!= NULL )
  -        sepLen=strlen( sep );
  -
  -    for( i=0; i< valuesCount; i++ ) {
  -        len+=strlen( values[i] );
  -        if( sep!= NULL )
  -            len+=1; /* Separator */
  -    }
  -
  -    result=(char *)resultPool->alloc( env, resultPool, len + 1 );
  -
  -    result[0]='\0';
  -    if( sep!=NULL ) {
  -        sepStr[0]=sep[0];
  -        sepStr[1]='\0';
  -    }
  -    
  -    for( i=0; i< valuesCount; i++ ) {
  -        strcat( values[i], result );
  -        if( sep!=NULL )
  -            strcat( sepStr, result );
  -    }
  -    return result;
  -}
  -
  -/** For multi-value properties, return the array containing
  - * all values.
  - *
  - * @param sep Optional separator, it'll be used to split existing values.
  - *            Curently only single-char separators are supported. 
  - */
  -char **jk2_map_getValues(jk_env_t *env, jk_map_t *m,
  -                         struct jk_pool *resultPool,
  -                         char *name,
  -                         char *sep,
  -                         int *countP)
  -{
  -    char **result;
  -    int count=0;
  -    int capacity=8;
  -    int mapSz= m->size(env, m );
  -    int i;
  -    char *l;
  -
  -    *countP=0;
  -    result=(char **)resultPool->alloc( env, resultPool,
  -                                       capacity * sizeof( char *));
  -    for(i=0; i<mapSz; i++ ) {
  -        char *cName= m->nameAt( env, m, i );
  -        char *cVal= m->valueAt( env, m, i );
  -
  -        if(0 == strcmp(cName, name)) {
  -            /* Split the value by sep, and add it to the result list
  -             */
  -            for(l = strtok(cVal, sep) ; l ; l = strtok(NULL, sep)) {
  -                if(count == capacity) {
  -                    result = resultPool->realloc(env, resultPool, 
  -                                                 sizeof(char *) * (capacity + 5),
  -                                                 result,
  -                                                 sizeof(char *) * capacity);
  -                    if(result==NULL) 
  -                        return NULL;
  -                    capacity += 5;
  -                }
  -                result[count] = resultPool->pstrdup(env, resultPool, l);
  -                count++;
  -            }
  -        }
  -    }
  -    *countP=count;
  -    return result;
  -}
                                  
  -
  -/**
  - *  Replace $(property) in value.
  - * 
  - */
  -char *jk2_map_replaceProperties(jk_env_t *env, jk_map_t *m,
  -                                struct jk_pool *resultPool, 
  -                                char *value)
  -{
  -    char *rc = value;
  -    char *env_start = rc;
  -    int rec = 0;
  -
  -    while(env_start = strstr(env_start, "$(")) {
  -        char *env_end = strstr(env_start, ")");
  -        if( rec++ > 20 ) return rc;
  -        if(env_end) {
  -            char env_name[LENGTH_OF_LINE + 1] = ""; 
  -            char *env_value;
  -
  -            *env_end = '\0';
  -            strcpy(env_name, env_start + 2);
  -            *env_end = ')';
  -
  -            env_value = m->get(env, m, env_name);
  -	    if(env_value == NULL ) {
  -	      env_value=getenv( env_name );
  -	    }
  -            /* fprintf(stderr, "XXXjk_map %s %s \n", env_name, env_value ); */
  -
  -            if(env_value != NULL ) {
  -                int offset=0;
  -                char *new_value = resultPool->alloc(env, resultPool, 
  -                                                    (strlen(rc) + strlen(env_value)));
  -                if(!new_value) {
  -                    break;
  -                }
  -                *env_start = '\0';
  -                strcpy(new_value, rc);
  -                strcat(new_value, env_value);
  -                strcat(new_value, env_end + 1);
  -		offset= env_start - rc + strlen( env_value );
  -                rc = new_value;
  -		/* Avoid recursive subst */
  -                env_start = rc + offset; 
  -            } else {
  -                env_start = env_end;
  -            }
  -        } else {
  -            break;
  -        }
  -    }
  -
  -    return rc;
  -}
  -
  -
   /* ==================== */
   /* Internal utils */
   
  @@ -687,33 +294,6 @@
   /* } */
   
   
  -static void jk2_trim_prp_comment(char *prp)
  -{
  -    char *comment = strchr(prp, '#');
  -    if(comment) {
  -        *comment = '\0';
  -    }
  -}
  -
  -static int jk2_trim(char *s)
  -{
  -    int i;
  -
  -    for(i = strlen(s) - 1 ; (i >= 0) && isspace(s[i]) ;  i--)
  -        ;
  -    
  -    s[i + 1] = '\0';
  -    
  -    for(i = 0 ; ('\0' !=  s[i]) && isspace(s[i]) ; i++)
  -        ;
  -    
  -    if(i > 0) {
  -        strcpy(s, &s[i]);
  -    }
  -
  -    return strlen(s);
  -}
  -
   static int jk2_map_default_realloc(jk_env_t *env, jk_map_t *m)
   {
       jk_map_private_t *mPriv=m->_private;
  @@ -745,10 +325,3 @@
   
       return JK_FALSE;
   }
  -
  -
  -
  -
  -
  -
  -
  
  
  

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