cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h

2002-05-18 Thread nacho

nacho   02/05/18 15:34:01

  Modified:jk/native2/common jk_config.c jk_map.c
   jk/native2/include jk_map.h
  Log:
  * Refactored reading of properties files into map object, this way arbitrary 
properties files can be read, need for i_r2.dll
  
  Revision  ChangesPath
  1.19  +2 -141jakarta-tomcat-connectors/jk/native2/common/jk_config.c
  
  Index: jk_config.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_config.c,v
  retrieving revision 1.18
  retrieving revision 1.19
  diff -u -r1.18 -r1.19
  --- jk_config.c   16 May 2002 21:03:44 -  1.18
  +++ jk_config.c   18 May 2002 22:34:01 -  1.19
  @@ -58,7 +58,7 @@
   /***
* Description: General purpose config object *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.18 $   *
  + * Version: $Revision: 1.19 $   *
***/
   
   #include "jk_global.h"
  @@ -69,11 +69,6 @@
   #define CAPACITY_INC_SIZE (50)
   #define LENGTH_OF_LINE(1024)
   
  -int jk2_config_read(struct jk_env *env, struct jk_config *cfg,
  -struct jk_map *map);
  -static void jk2_trim_prp_comment(char *prp);
  -static int  jk2_trim(char *s);
  -
   static int jk2_config_readFile(jk_env_t *env,
jk_config_t *cfg,
int *didReload, int firstTime);
  @@ -359,113 +354,6 @@
   
   
   
  -/*  */
  -/*  Reading / parsing. 
  - */
  -int jk2_config_parseProperty(jk_env_t *env, jk_config_t *cfg, jk_map_t *m, char 
*prp )
  -{
  -int rc = JK_ERR;
  -char *v;
  -jk_map_t *prefNode=NULL;
  -
  -jk2_trim_prp_comment(prp);
  -
  -if( jk2_trim(prp)==0 )
  -return JK_OK;
  -
  -/* Support windows-style 'sections' - for cleaner config
  - */
  -if( prp[0] == '[' ) {
  -v=strchr(prp, ']' );
  -*v='\0';
  -jk2_trim( v );
  -prp++;
  -
  -cfg->section=cfg->pool->pstrdup(env, m->pool, prp);
  -
  -jk2_map_default_create( env, &prefNode, m->pool );
  -
  -m->add( env, m, cfg->section, prefNode);
  -
  -return JK_OK;
  -}
  -
  -v = strchr(prp, '=');
  -if(v==NULL)
  -return JK_OK;
  -
  -*v = '\0';
  -v++;
  -
  -if(strlen(v)==0 || strlen(prp)==0)
  -return JK_OK;
  -
  -prefNode=m->get( env, m, cfg->section);
  -
  -if( prefNode==NULL )
  -return JK_ERR;
  -
  -/* fprintf(stderr, "Adding [%s] %s=%s\n", cfg->section, prp, v ); */
  -prefNode->add( env, prefNode, m->pool->pstrdup(env, m->pool, prp),
  -   m->pool->pstrdup(env, m->pool, v));
  -
  -return JK_OK;
  -}
  -
  -/** Read a query string into the map
  - */
  -int jk2_config_queryRead(jk_env_t *env, jk_config_t *cfg, jk_map_t *m, const char 
*query)
  -{
  -char *sep;
  -char *value;
  -char *qry=cfg->pool->pstrdup( env, cfg->pool, query );
  -
  -while( qry != NULL ) {
  -sep=strchr( qry, '&');
  -if( sep !=NULL ) { 
  -*sep='\0';
  -sep++;
  -}
  -
  -value = strchr(qry, '=');
  -if(value==NULL) {
  -value="";
  -} else {
  -*value = '\0';
  -value++;
  -}
  -m->add( env, m, cfg->pool->pstrdup( env, cfg->pool, qry ),
  -cfg->pool->pstrdup( env, cfg->pool, value ));
  -qry=sep;
  -}
  -return JK_OK;
  -}
  -
  -/** Read the config file
  - */
  -int jk2_config_read(jk_env_t *env, jk_config_t *cfg, jk_map_t *m)
  -{
  -FILE *fp;
  -char buf[LENGTH_OF_LINE + 1];
  -char *prp;
  -char *f=cfg->file;
  -
  -if(m==NULL || f==NULL )
  -return JK_ERR;
  -
  -fp= fopen(f, "r");
  -
  -if(fp==NULL)
  -return JK_ERR;
  -
  -cfg->section=NULL;
  -while(NULL != (prp = fgets(buf, LENGTH_OF_LINE, fp))) {
  -jk2_config_parseProperty( env, cfg, m, prp );
  -}
  -
  -fclose(fp);
  -return JK_OK;
  -}
   
   
   
  @@ -667,7 +555,7 @@
   
   jk2_map_default_create(env, &cfgData, env->tmpPool);
   
  -rc=jk2_config_read(env, cfg, cfgData );
  +rc=jk2_map_read(env, cfgData , cfg->file );
   
   if( rc==JK_OK ) {
   env->l->jkLog(env, env->l, JK_LOG_INFO, 
  @@ -722,33 +610,6 @@
   return JK_OK;
   }
   
  -
  -static void jk2_trim_prp_comment(char *prp)
  -{
  -char *comment = strchr(prp, '#');
  -if(comment) {
  -*comment = '\0';

cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h

2002-05-01 Thread costin

costin  02/05/01 16:10:17

  Modified:jk/native2/common jk_channel_jni.c jk_shm.c
jk_worker_ajp13.c
   jk/native2/include jk_map.h
  Log:
  Few fixes in error handling and checking for exceptions.
  
  Revision  ChangesPath
  1.12  +1 -2  jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c
  
  Index: jk_channel_jni.c
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_channel_jni.c,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- jk_channel_jni.c  1 May 2002 22:23:36 -   1.11
  +++ jk_channel_jni.c  1 May 2002 23:10:17 -   1.12
  @@ -309,8 +309,7 @@
   jk2_channel_jni_open( env, _this, endpoint );
   epData=(jk_ch_jni_ep_private_t *)endpoint->channelData;
   }
  -
  -if( epData->jniJavaContext == NULL ) {
  +if( epData == NULL || epData->jniJavaContext == NULL ) {
   env->l->jkLog(env, env->l, JK_LOG_ERROR,"channel_jni.send() no java 
context\n" ); 
   
   return JK_ERR;
  
  
  
  1.9   +16 -7 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.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- jk_shm.c  30 Apr 2002 01:01:03 -  1.8
  +++ jk_shm.c  1 May 2002 23:10:17 -   1.9
  @@ -175,6 +175,11 @@
   return JK_OK;
   }
   
  +if( shm->size <= 0 ) {
  +env->l->jkLog(env, env->l, JK_LOG_ERROR, 
  +  "shm.create(): No size %s\n", shm->fname);
  +return JK_ERR;
  +}
   /* make sure it's an absolute pathname */
   /*  fname = ap_server_root_relative(pconf, ap_scoreboard_fname); */
   
  @@ -189,13 +194,11 @@
 "shm.create(): error removing shm %s %d %s\n",
 shm->fname, rv, error );
   shm->privateData=NULL;
  -return rv;
   } else {
   env->l->jkLog(env, env->l, JK_LOG_ERROR, 
 "shm.create(): file removed ok\n");
   }
   
  -
   rv = apr_shm_create((apr_shm_t **)&shm->privateData,(apr_size_t)shm->size,
   shm->fname, globalShmPool);
   
  @@ -232,7 +235,7 @@
   
   shm->head->slotSize = shm->slotSize;
   shm->head->slotMaxCount = shm->slotMaxCount;
  -shm->head->lastSlot = 0;
  +shm->head->lastSlot = 1;
   
   env->l->jkLog(env, env->l, JK_LOG_INFO, 
 "shm.init() Initalized %s %p\n",
  @@ -312,6 +315,7 @@
   {
   jk_bean_t *bean=(jk_bean_t *)target;
   jk_shm_t *shm=(jk_shm_t *)bean->object;
  +int rc;
   
   int code=msg->getByte(env, msg );
   
  @@ -330,8 +334,8 @@
   case SHM_ATTACH: {
   env->l->jkLog(env, env->l, JK_LOG_INFO, 
 "shm.init()\n");
  -shm->init(env, shm);
  -return JK_OK;
  +rc=shm->init(env, shm);
  +return rc;
   }
   case SHM_DETACH: {
   
  @@ -342,12 +346,17 @@
   jk_shm_slot_t *slot;
   
   env->l->jkLog(env, env->l, JK_LOG_INFO, 
  -  "shm.registerTomcat() %s %d\n",
  +  "shm.writeSlot() %s %d\n",
 instanceName, msg->len );
   if( msg->len > shm->slotSize ) {
   env->l->jkLog(env, env->l, JK_LOG_ERROR, 
  -  "shm.registerTomcat() Packet too large %d %d\n",
  +  "shm.writeSlot() Packet too large %d %d\n",
 shm->slotSize, msg->len );
  +return JK_ERR;
  +}
  +if( shm->head == NULL ) {
  +env->l->jkLog(env, env->l, JK_LOG_ERROR, 
  +  "shm.writeSlot() No head - shm was not initalized\n");
   return JK_ERR;
   }
   slot=shm->createSlot( env, shm, instanceName, 0 );
  
  
  
  1.11  +1 -1  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.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- jk_worker_ajp13.c 1 May 2002 22:23:36 -   1.10
  +++ jk_worker_ajp13.c 1 May 2002 23:10:17 -   1.11
  @@ -401,7 +401,7 @@
 "ajp14.forwardST() After %d\n",err);
   
   
  -return JK_OK;
  +return err;
   }

   static int JK_METHOD
  
  
  
  1.13  +4 -2  jakarta-tomcat-connectors/jk/native2/include/jk_map.h
  
  Index: jk_map.h
  ===
  RCS file: /home/cvs/jakarta-tomc

cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h

2002-04-26 Thread nacho

nacho   02/04/26 17:50:43

  Modified:jk/native2/include jk_map.h
  Log:
  * MSVC is much more picky about this things
  
  Revision  ChangesPath
  1.12  +2 -2  jakarta-tomcat-connectors/jk/native2/include/jk_map.h
  
  Index: jk_map.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_map.h,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- jk_map.h  25 Apr 2002 19:16:14 -  1.11
  +++ jk_map.h  27 Apr 2002 00:50:43 -  1.12
  @@ -58,7 +58,7 @@
   /***
* Description: Map object header file *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.11 $   *
  + * Version: $Revision: 1.12 $   *
***/
   
   #ifndef JK_MAP_H
  @@ -121,7 +121,7 @@
  The default impl will set them to the content
   */
   char **keys;
  -char **values;
  +void **values;
   };
   
   int jk2_map_default_create(struct jk_env *env, jk_map_t **m, 
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h

2002-04-25 Thread costin

costin  02/04/25 12:16:14

  Modified:jk/native2/common jk_map.c
   jk/native2/include jk_map.h
  Log:
  Update rc. Added 2 debug fields - so we can see the content of the
  map in gdb.
  
  Revision  ChangesPath
  1.18  +24 -22jakarta-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.17
  retrieving revision 1.18
  diff -u -r1.17 -r1.18
  --- jk_map.c  20 Apr 2002 22:57:16 -  1.17
  +++ jk_map.c  25 Apr 2002 19:16:14 -  1.18
  @@ -58,7 +58,7 @@
   /***
* Description: General purpose map object *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.17 $   *
  + * Version: $Revision: 1.18 $   *
***/
   
   #include "jk_global.h"
  @@ -103,12 +103,12 @@
  const char *name, void *value,
  void **old)
   {
  -int rc = JK_FALSE;
  +int rc = JK_ERR;
   int i;
   jk_map_private_t *mPriv;
   
   if( name==NULL ) 
  -return JK_FALSE;
  +return JK_ERR;
   
   mPriv=(jk_map_private_t *)m->_private;
   
  @@ -123,7 +123,7 @@
   if( old!=NULL )
   *old = (void *) mPriv->values[i]; /* DIRTY */
   mPriv->values[i] = value;
  -return JK_TRUE;
  +return JK_OK;
   }
   
   jk2_map_default_realloc(env, m);
  @@ -138,7 +138,7 @@
   */
   mPriv->names[mPriv->size] = m->pool->pstrdup(env,m->pool, name);
   mPriv->size ++;
  -rc = JK_TRUE;
  +rc = JK_OK;
   }
   return rc;
   }
  @@ -146,11 +146,11 @@
   static int jk2_map_default_add(jk_env_t *env, jk_map_t *m,
  const char *name, void *value)
   {
  -int rc = JK_FALSE;
  +int rc = JK_ERR;
   jk_map_private_t *mPriv;
   
   if( name==NULL ) 
  -return JK_FALSE;
  +return JK_ERR;
   
   mPriv=(jk_map_private_t *)m->_private;
   
  @@ -165,7 +165,7 @@
   /* mPriv->names[mPriv->size] = m->pool->pstrdup(m->pool, name); */
   mPriv->names[mPriv->size] =  (char *)name; 
   mPriv->size ++;
  -rc = JK_TRUE;
  +rc = JK_OK;
   }
   return rc;
   }
  @@ -232,11 +232,11 @@
   
   if( dst->get(env, dst, name ) == NULL) {
   int rc= dst->put(env, dst, name, value, NULL );
  -if( rc != JK_TRUE )
  +if( rc != JK_OK )
   return rc;
   }
   }
  -return JK_TRUE;
  +return JK_OK;
   }
  
   /*  */
  @@ -249,14 +249,14 @@
   jk_map_private_t *mPriv;
   
   if( m== NULL )
  -return JK_FALSE;
  +return JK_ERR;
   
  -_this=(jk_map_t *)pool->alloc(env, pool, sizeof(jk_map_t));
  -mPriv=(jk_map_private_t *)pool->alloc(env, pool, sizeof(jk_map_private_t));
  +_this=(jk_map_t *)pool->calloc(env, pool, sizeof(jk_map_t));
  +mPriv=(jk_map_private_t *)pool->calloc(env, pool, sizeof(jk_map_private_t));
   *m=_this;
   
   if( _this == NULL || mPriv==NULL )
  -return JK_FALSE;
  +return JK_ERR;
   
   _this->pool = pool;
   _this->_private=mPriv;
  @@ -276,16 +276,16 @@
   _this->clear=jk2_map_default_clear;
   
   
  -return JK_TRUE;
  +return JK_OK;
   }
   
   /* int map_free(jk_map_t **m) */
   /* { */
  -/* int rc = JK_FALSE; */
  +/* int rc = JK_ERR; */
   
   /* if(m && *m) { */
   /* (*m)->pool->close((*m)->pool); */
  -/* rc = JK_TRUE; */
  +/* rc = JK_OK; */
   /* *m = NULL; */
   /* } */
   /* return rc; */
  @@ -301,11 +301,13 @@
   void **values;
   int  capacity = mPriv->capacity + CAPACITY_INC_SIZE;
   
  -names = (char **)m->pool->alloc(env, m->pool,
  +names = (char **)m->pool->calloc(env, m->pool,
   sizeof(char *) * capacity);
  -values = (void **)m->pool->alloc(env, m->pool,
  +values = (void **)m->pool->calloc(env, m->pool,
sizeof(void *) * capacity);
  -
  +
  +m->keys=names;
  +m->values=values;
   if(values && names) {
   if (mPriv->capacity && mPriv->names) 
   memcpy(names, mPriv->names, sizeof(char *) * mPriv->capacity);
  @@ -317,9 +319,9 @@
   mPriv->values = ( void **)values;
   mPriv->capacity = capacity;
   
  

cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h

2002-03-18 Thread costin

costin  02/03/18 09:58:46

  Modified:jk/native2/include jk_map.h
  Log:
  Remove the special map methods.
  
  A map is a map, the config may be backed by a map but it deals with the
  high level stuff.
  
  As soon as APR goes 1.0 we can switch from our private map impl. to apr.
  
  Revision  ChangesPath
  1.10  +1 -97 jakarta-tomcat-connectors/jk/native2/include/jk_map.h
  
  Index: jk_map.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_map.h,v
  retrieving revision 1.9
  retrieving revision 1.10
  diff -u -r1.9 -r1.10
  --- jk_map.h  21 Feb 2002 11:15:04 -  1.9
  +++ jk_map.h  18 Mar 2002 17:58:46 -  1.10
  @@ -58,7 +58,7 @@
   /***
* Description: Map object header file *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.9 $   *
  + * Version: $Revision: 1.10 $   *
***/
   
   #ifndef JK_MAP_H
  @@ -120,102 +120,6 @@
   
   int jk2_map_default_create(struct jk_env *env, jk_map_t **m, 
 struct jk_pool *pool); 
  -
  -/* int map_open(jk_env *env, jk_map_t *m); */
  -
  -
  -
  -/* Additional functions that operate on maps. They are implemented
  - *  in jk_map.c, togheter with the 'default' jk map, but should operate
  - *  on any map.
  - */
  -
  -char *jk2_map_getString(struct jk_env *env, struct jk_map *m,
  -   const char *name, char *def);
  -
  -int jk2_map_getBool(struct jk_env *env, struct jk_map *m,
  -   const char *prop, const char *def);
  -
  -/** Get a string property, using the worker's style
  -for properties. If objType is null, then objName.pname
  -will be used.
  -Example worker.ajp13.host=localhost.
  -*/
  -char *jk2_map_getStrProp(struct jk_env *env, jk_map_t *m,
  -const char *objType, const char *objName,
  -const char *pname, char *def);
  -
  -int jk2_map_getIntProp(struct jk_env *env, jk_map_t *m,
  -  const char *objType, const char *objName,
  -  const char *pname,
  -  int def);
  -
  -/** Add all the values from src into dst. Use dst's pool
  - */
  -int jk2_map_append(struct jk_env *env, jk_map_t * dst,
  -  jk_map_t * src );
  -
  -/* == Manipulating values   == */
  -
  -
  -/** Extract a String[] property. If sep==NULL, it'll split the value on
  - *  ' ', tab, ',', '*'.
  - * 
  - *  @param pool Pool on which the result will be allocated. Defaults
  - *  to the map's pool XXX Use the env's tmp pool.
  - */ 
  -char **jk2_map_split(struct jk_env *env,  jk_map_t *m,
  -struct jk_pool *pool, /* XXX will be removed */
  -const char *listStr, const char *sep,unsigned *list_len );
  -
  -int jk2_map_str2int(struct jk_env *env, char *value);
  -
  -/* Just atof...
  -  double jk_map_getDouble(jk_env *env, jk_map_t *m, */
  -/* const char *name, double def); */
  -
  -
  -
  -/* == Reading and parsing properties == */
  -
  -/** Read the properties from the file, doing $(prop) substitution
  - */
  -int jk2_map_readFileProperties(struct jk_env *env, jk_map_t *m,
  -  const char *f);
  -
  -/**
  - *  Replace $(property) in value.
  - * 
  - */
  -char *jk2_map_replaceProperties(struct jk_env *env, jk_map_t *m,
  -   struct jk_pool *resultPool, 
  -   char *value);
  -
  -
  -/** 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(struct jk_env *env, struct jk_map *m,
  - struct jk_pool *resultPool,
  - char *name, char *sep );
  -
  -
  -/** 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(struct jk_env *env, struct jk_map *m,
  -struct jk_pool *resultPool,
  -char *name, char *sep, int *count);
   
   
   #ifdef __cplusplus
  
 

cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h

2002-01-11 Thread costin

costin  02/01/11 20:43:46

  Modified:jk/native2/include jk_map.h
  Log:
  Small change in signature - the exact same code was duplicated in jni worker.
  
  Revision  ChangesPath
  1.8   +6 -5  jakarta-tomcat-connectors/jk/native2/include/jk_map.h
  
  Index: jk_map.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_map.h,v
  retrieving revision 1.7
  retrieving revision 1.8
  diff -u -r1.7 -r1.8
  --- jk_map.h  31 Dec 2001 19:15:12 -  1.7
  +++ jk_map.h  12 Jan 2002 04:43:46 -  1.8
  @@ -58,7 +58,7 @@
   /***
* Description: Map object header file *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.7 $   *
  + * Version: $Revision: 1.8 $   *
***/
   
   #ifndef JK_MAP_H
  @@ -137,7 +137,8 @@
  const char *prop, const char *def);
   
   /** Get a string property, using the worker's style
  -for properties.
  +for properties. If objType is null, then objName.pname
  +will be used.
   Example worker.ajp13.host=localhost.
   */
   char *jk_map_getStrProp(struct jk_env *env, jk_map_t *m,
  @@ -157,7 +158,7 @@
   /* == Manipulating values   == */
   
   
  -/** Extract a String[] property. It'll split the value on
  +/** Extract a String[] property. If sep==NULL, it'll split the value on
*  ' ', tab, ',', '*'.
* 
*  @param pool Pool on which the result will be allocated. Defaults
  @@ -165,7 +166,7 @@
*/ 
   char **jk_map_split(struct jk_env *env,  jk_map_t *m,
   struct jk_pool *pool, /* XXX will be removed */
  -const char *listStr, unsigned *list_len );
  +const char *listStr, const char *sep,unsigned *list_len );
   
   int jk_map_str2int(struct jk_env *env, char *value);
   
  @@ -188,7 +189,7 @@
*/
   char *jk_map_replaceProperties(struct jk_env *env, jk_map_t *m,
  struct jk_pool *resultPool, 
  -   const char *value);
  +   char *value);
   
   
   /** For multi-value properties, return the concatenation
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h jk_service.h

2001-12-15 Thread costin

costin  01/12/15 09:19:26

  Modified:jk/native2/include jk_map.h jk_service.h
  Log:
  Added the 'add' method, to be compatible with apr_tables ( and usable for
  storing headers and multi-values ).
  
  Change the storage of headers, attributes to jk_map. This will avoid
  copying the data, and provide a simpler interface.
  
  Revision  ChangesPath
  1.5   +3 -3  jakarta-tomcat-connectors/jk/native2/include/jk_map.h
  
  Index: jk_map.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_map.h,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- jk_map.h  2001/12/14 07:07:11 1.4
  +++ jk_map.h  2001/12/15 17:19:26 1.5
  @@ -58,7 +58,7 @@
   /***
* Description: Map object header file *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.4 $   *
  + * Version: $Revision: 1.5 $   *
***/
   
   #ifndef JK_MAP_H
  @@ -90,8 +90,8 @@
  const char *name, void *value,
  void **oldValue);
   
  -/*  int (*add)(struct jk_env *env, struct jk_map *_this, */
  -/*   const char *name, void *value ); */
  +int (*add)(struct jk_env *env, struct jk_map *_this,
  +   const char *name, void *value );
   
   /* Similar with apr_table, elts can be accessed by id
*/
  
  
  
  1.6   +8 -21 jakarta-tomcat-connectors/jk/native2/include/jk_service.h
  
  Index: jk_service.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_service.h,v
  retrieving revision 1.5
  retrieving revision 1.6
  diff -u -r1.5 -r1.6
  --- jk_service.h  2001/12/13 19:06:11 1.5
  +++ jk_service.h  2001/12/15 17:19:26 1.6
  @@ -63,7 +63,7 @@
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
* Author:  Dan Milstein <[EMAIL PROTECTED]>*
* Author:  Henri Gomez <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.5 $   *
  + * Version: $Revision: 1.6 $   *
***/
   
   #ifndef JK_SERVICE_H
  @@ -185,13 +185,8 @@
 */
int ssl_key_size;

  -/*
  - * Headers, names and values.
  - */
  -char**headers_names;/* Names of the request headers  */
  -char**headers_values;   /* Values of the request headers */
  -unsigned num_headers;   /* Number of request headers */
  -
  +/** Incoming headers */
  +struct jk_map *headers_in;
   
   /*
* Request attributes. 
  @@ -203,9 +198,7 @@
* attributes. Tomcat is required to append org.apache.tomcat. to 
* these attrinbute names.
*/
  -char**attributes_names;/* Names of the request attributes  */
  -char**attributes_values;   /* Values of the request attributes */
  -unsigned num_attributes;   /* Number of request attributes */
  +struct jk_map *attributes;
   
   /*
* The jvm route is in use when the adapter load balance among
  @@ -220,9 +213,7 @@
*/
   int status;
   const char *msg;
  -unsignedout_headers;
  -char  **out_header_names;
  -char  **out_header_values;
  +struct jk_map *headers_out;
   
   /* Count remaining bytes ( original content length minus what was sent */
   int left_bytes_to_send;
  @@ -243,14 +234,10 @@
   void (*afterRequest)( jk_ws_service_t *_this );
   
   /*
  - * Send the response headers to the browser.
  + * Set the response head in the server structures. This will be called
  + * before the first write.
*/
  -int (JK_METHOD *start_response)(jk_ws_service_t *s,
  -int status,
  -const char *reason,
  -const char * const *header_names,
  -const char * const *header_values,
  -unsigned num_of_headers);
  +int (JK_METHOD *head)(jk_ws_service_t *s);
   
   /*
* Read a chunk of the request body into a buffer.  Attempt to read len
  
  
  

--
To unsubscribe, e-mail:   
For additional commands, e-mail: 




cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h

2001-12-13 Thread costin

costin  01/12/13 23:07:11

  Modified:jk/native2/include jk_map.h
  Log:
  That was a bit more difficult, but seems to be fine.
  
  The idea is the same as in pools - use the native mechanism if possible,
  if not use the default impl.
  
  This change will allow the use of apr_table and other map implementations.
  It would also let us plug apr_hash. But more important, in jk_service
  we can avoid copying the headers and use the native representation and
  a wrappers. And the same will work for all servers ( if someone implements
  the wrapper ).
  
  I started to use jk_env as first param, not used for now but it's important
  to get it in the api before it's frozen.
  
  Revision  ChangesPath
  1.4   +96 -70jakarta-tomcat-connectors/jk/native2/include/jk_map.h
  
  Index: jk_map.h
  ===
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/include/jk_map.h,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- jk_map.h  2001/12/06 22:48:49 1.3
  +++ jk_map.h  2001/12/14 07:07:11 1.4
  @@ -58,13 +58,14 @@
   /***
* Description: Map object header file *
* Author:  Gal Shachor <[EMAIL PROTECTED]>   *
  - * Version: $Revision: 1.3 $   *
  + * Version: $Revision: 1.4 $   *
***/
   
   #ifndef JK_MAP_H
   #define JK_MAP_H
   
   #include "jk_pool.h"
  +#include "jk_env.h"
   #include "jk_logger.h"
   
   #ifdef __cplusplus
  @@ -74,94 +75,119 @@
   struct jk_logger;
   struct jk_pool;
   struct jk_map;
  +struct jk_env;
   typedef struct jk_map jk_map_t;
   
  -int map_alloc(jk_map_t **m, struct jk_pool *pool);
  +/** Map interface. This include only the basic operations, and
  + *   supports both name and index access.
  + */
  +struct jk_map {
  +
  +void *(*get)(struct jk_env *env, struct jk_map *_this,
  + const char *name);
  +
  +int (*put)(struct jk_env *env, struct jk_map *_this,
  +   const char *name, void *value,
  +   void **oldValue);
  +
  +/*  int (*add)(struct jk_env *env, struct jk_map *_this, */
  +/*   const char *name, void *value ); */
  +
  +/* Similar with apr_table, elts can be accessed by id
  + */
  +
  +int (*size)(struct jk_env *env, struct jk_map *_this);
  +
  +char *(*nameAt)(struct jk_env *env, struct jk_map *m,
  +int pos);
  +
  +void *(*valueAt)(struct jk_env *env, struct jk_map *m,
  + int pos);
  +
  +/* Admin operations */
  +void (*init)(struct jk_env *env, struct jk_map *m,
  + int initialSize, void *wrappedNativeObj);
  +
  +
  +/* Empty the map, remove all values ( but it can keep
  +   allocated storage for [] )
  +*/
  +void (*clear)(struct jk_env *env, struct jk_map *m);
  +
  +struct jk_pool *pool;
  +void *_private;
  +};
   
  -int map_free(jk_map_t **m);
  +int jk_map_default_create(struct jk_env *env, jk_map_t **m, 
  +  struct jk_pool *pool); 
   
  -int map_open(jk_map_t *m);
  +/* int map_open(jk_env *env, jk_map_t *m); */
   
  -int map_close(jk_map_t *m);
   
  -void *map_get(jk_map_t *m,
  -  const char *name,
  -  const void *def);
  +
  +/* Additional functions that operate on maps. They are implemented
  + *  in jk_map.c, togheter with the 'default' jk map, but should operate
  + *  on any map.
  + */
  +
  +char *jk_map_getString(struct jk_env *env, jk_map_t *m,
  +   const char *name, char *def);
  +
  +/** Get a string property, using the worker's style
  +for properties.
  +Example worker.ajp13.host=localhost.
  +*/
  +char *jk_map_getStrProp(struct jk_env *env, jk_map_t *m,
  +const char *objType, const char *objName,
  +const char *pname, char *def);
  +
  +int jk_map_getIntProp(struct jk_env *env, jk_map_t *m,
  +  const char *objType, const char *objName,
  +  const char *pname,
  +  int def);
   
  -int map_get_int(jk_map_t *m,
  -const char *name,
  -int def);
  +/** Add all the values from src into dst. Use dst's pool
  + */
  +int jk_map_append(struct jk_env *env, jk_map_t * dst,
  +  jk_map_t * src );
   
  -double map_get_double(jk_map_t *m,
  -  const char *name,
  -  double def);
  +/* == Manipulating values   == */
   
  -char *map_get_string(jk_map_t *m,
  - const char *name,
  - const char *def);