cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_map.c
costin 01/12/15 09:23:56 Modified:jk/native2/common jk_map.c Log: Added the add method. Revision ChangesPath 1.8 +30 -1 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.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- jk_map.c 2001/12/14 07:09:31 1.7 +++ jk_map.c 2001/12/15 17:23:56 1.8 @@ -58,7 +58,7 @@ /*** * Description: General purpose map object * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.7 $ * + * Version: $Revision: 1.8 $ * ***/ #include jk_global.h @@ -143,6 +143,34 @@ return rc; } +static int jk_map_default_add(jk_env_t *env, jk_map_t *m, + const char *name, void *value) +{ +int rc = JK_FALSE; +int i; +jk_map_private_t *mPriv; + +if( name==NULL ) +return JK_FALSE; + +mPriv=(jk_map_private_t *)m-_private; + +jk_map_default_realloc(m); + +if(mPriv-size mPriv-capacity) { +mPriv-values[mPriv-size] = value; +/* XXX this is wrong - either we take ownership and copy both + name and value, + or none. The caller should do that if he needs ! +*/ +/* mPriv-names[mPriv-size] = m-pool-pstrdup(m-pool, name); */ +mPriv-names[mPriv-size] = name; +mPriv-size ++; +rc = JK_TRUE; +} +return rc; +} + static int jk_map_default_size(jk_env_t *env, jk_map_t *m) { jk_map_private_t *mPriv; @@ -515,6 +543,7 @@ _this-get=jk_map_default_get; _this-put=jk_map_default_put; +_this-add=jk_map_default_add; _this-size=jk_map_default_size; _this-nameAt=jk_map_default_nameAt; _this-valueAt=jk_map_default_valueAt; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_requtil.c jk_serialize_ajp.c
costin 01/12/15 09:24:16 Modified:jk/native2/common jk_requtil.c jk_serialize_ajp.c Log: Change headers, attributes to jk_map. Revision ChangesPath 1.4 +7 -10 jakarta-tomcat-connectors/jk/native2/common/jk_requtil.c Index: jk_requtil.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_requtil.c,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- jk_requtil.c 2001/12/12 21:52:40 1.3 +++ jk_requtil.c 2001/12/15 17:24:16 1.4 @@ -254,13 +254,16 @@ char *jk_requtil_getCookieByName(jk_ws_service_t *s, const char *name) { -unsigned i; +int i; +jk_map_t *headers=s-headers_in; -for(i = 0 ; i s-num_headers ; i++) { -if(0 == strcasecmp(s-headers_names[i], cookie)) { +/* XXX use 'get' - and make sure jk_map has support for + case insensitive search */ +for(i = 0 ; i headers-size( NULL, headers ) ; i++) { +if(0 == strcasecmp(headers-nameAt( NULL, headers, i), cookie)) { char *id_start; -for(id_start = strstr(s-headers_values[i], name) ; +for(id_start = strstr( headers-valueAt( NULL, headers, i ), name) ; id_start ; id_start = strstr(id_start + 1, name)) { if('=' == id_start[strlen(name)]) { @@ -429,11 +432,5 @@ s-ssl_cert_len = 0; s-ssl_cipher = NULL; s-ssl_session = NULL; -s-headers_names= NULL; -s-headers_values = NULL; -s-num_headers = 0; -s-attributes_names = NULL; -s-attributes_values= NULL; -s-num_attributes = 0; s-jvm_route= NULL; } 1.2 +18 -11jakarta-tomcat-connectors/jk/native2/common/jk_serialize_ajp.c Index: jk_serialize_ajp.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_serialize_ajp.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- jk_serialize_ajp.c2001/12/12 21:37:13 1.1 +++ jk_serialize_ajp.c2001/12/15 17:24:16 1.2 @@ -174,7 +174,8 @@ jk_ws_service_t *s ) { unsigned char method; -unsigned i; +int i; +int headerCount; jk_logger_t *l=msg-l; l-jkLog(l, JK_LOG_DEBUG, Into ajp_marshal_into_msgb\n); @@ -185,6 +186,8 @@ return JK_FALSE; } +headerCount=s-headers_in-size(NULL, s-headers_in); + if (msg-appendByte(msg, JK_AJP13_FORWARD_REQUEST) || msg-appendByte(msg, method) || msg-appendString(msg, s-protocol)|| @@ -194,31 +197,33 @@ msg-appendString(msg, s-server_name) || msg-appendInt(msg, (unsigned short)s-server_port) || msg-appendByte(msg, (unsigned char)(s-is_ssl)) || -msg-appendInt(msg, (unsigned short)(s-num_headers))) { +msg-appendInt(msg, (unsigned short)(headerCount))) { l-jkLog(l, JK_LOG_ERROR, handle.request() Error serializing the message head\n); return JK_FALSE; } -for (i = 0 ; i s-num_headers ; i++) { +for (i = 0 ; i headerCount ; i++) { unsigned short sc; + +char *name=s-headers_in-nameAt(NULL, s-headers_in, i); -if (jk_requtil_getHeaderId(s-headers_names[i], sc)) { +if (jk_requtil_getHeaderId(name, sc)) { if (msg-appendInt(msg, sc)) { l-jkLog(l, JK_LOG_ERROR, handle.request() Error serializing header id\n); return JK_FALSE; } } else { -if (msg-appendString(msg, s-headers_names[i])) { +if (msg-appendString(msg, name)) { l-jkLog(l, JK_LOG_ERROR, handle.request() Error serializing header name\n); return JK_FALSE; } } -if (msg-appendString(msg, s-headers_values[i])) { +if (msg-appendString(msg, s-headers_in-valueAt( NULL, s-headers_in, i))) { l-jkLog(l, JK_LOG_ERROR, handle.request() Error serializing header value\n); return JK_FALSE; @@ -301,14 +306,16 @@ } -if (s-num_attributes 0) { -for (i = 0 ; i s-num_attributes ; i++) { +if (s-attributes-size( NULL, s-attributes) 0) { +for (i = 0 ; i s-attributes-size( NULL, s-attributes) ; i++) { +char *name=s-attributes-nameAt( NULL, s-attributes, i); +char *val=s-attributes-nameAt( NULL, s-attributes, i);
cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 jk_logger_apache2.c jk_map_aprtable.c
costin 01/12/15 09:25:45 Modified:jk/native2/server/apache2 jk_logger_apache2.c jk_map_aprtable.c Log: Added the missing check for level in jk_logger_apache2. Finish jk_map_aprtable. Revision ChangesPath 1.9 +1 -1 jakarta-tomcat-connectors/jk/native2/server/apache2/jk_logger_apache2.c Index: jk_logger_apache2.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_logger_apache2.c,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_logger_apache2.c 2001/12/14 07:14:59 1.8 +++ jk_logger_apache2.c 2001/12/15 17:25:45 1.9 @@ -132,7 +132,7 @@ char buf[HUGE_BUFFER_SIZE]; #endif -if( level = l-level ) +if( level l-level ) return JK_TRUE; if( s==NULL ) { 1.2 +30 -0 jakarta-tomcat-connectors/jk/native2/server/apache2/jk_map_aprtable.c Index: jk_map_aprtable.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_map_aprtable.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- jk_map_aprtable.c 2001/12/14 07:11:42 1.1 +++ jk_map_aprtable.c 2001/12/15 17:25:45 1.2 @@ -95,6 +95,16 @@ return JK_TRUE; } +static int jk_map_aprtable_add( struct jk_env *env, struct jk_map *_this, +const char *name, void *value ) +{ +apr_table_t *aprMap=_this-_private; + +apr_table_addn( aprMap, name, (char *)value ); + +return JK_TRUE; +} + static int jk_map_aprtable_size( struct jk_env *env, struct jk_map *_this ) { apr_table_t *aprMap=_this-_private; @@ -125,6 +135,17 @@ return elts[pos].val; } +static void jk_map_aprtable_init(jk_env_t *env, jk_map_t *m, int initialSize, +void *wrappedObj) +{ +m-_private=wrappedObj; +} + +static void jk_map_aprtable_clear(jk_env_t *env, jk_map_t *m) +{ + +} + /* Not used yet */ int jk_map_aprtable_factory(jk_env_t *env, jk_pool_t *pool, @@ -134,6 +155,15 @@ jk_map_t *_this=(jk_map_t *)pool-calloc( pool, sizeof(jk_map_t)); *result=_this; + +_this-get=jk_map_aprtable_get; +_this-put=jk_map_aprtable_put; +_this-add=jk_map_aprtable_add; +_this-size=jk_map_aprtable_size; +_this-nameAt=jk_map_aprtable_nameAt; +_this-valueAt=jk_map_aprtable_valueAt; +_this-init=jk_map_aprtable_init; +_this-clear=jk_map_aprtable_clear; return JK_TRUE; } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 jk_pool_apr.c
costin 01/12/15 09:27:43 Modified:jk/native2/server/apache2 jk_pool_apr.c Log: Removed debugging ( and changed the define to JK_APR_POOL_DEBUG to avoid name conflicts ). Revision ChangesPath 1.6 +11 -7 jakarta-tomcat-connectors/jk/native2/server/apache2/jk_pool_apr.c Index: jk_pool_apr.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_pool_apr.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_pool_apr.c 2001/12/14 07:14:59 1.5 +++ jk_pool_apr.c 2001/12/15 17:27:43 1.6 @@ -68,8 +68,12 @@ #include jk_apache2.h -#define POOL_DEBUG +/* + JK_APR_POOL_DEBUG will enable verbose messages on allocation. + What's important is to see 'reset' after each request. +*/ + int jk_pool_apr_create( jk_pool_t **newPool, jk_pool_t *parent, apr_pool_t *aprPool ); @@ -83,7 +87,7 @@ */ static void jk_pool_apr_close(jk_pool_t *p) { -#ifdef POOL_DEBUG +#ifdef JK_APR_POOL_DEBUG fprintf(stderr, apr_close %p\n, p); #endif } @@ -94,7 +98,7 @@ */ static void jk_pool_apr_reset(jk_pool_t *p) { -#ifdef POOL_DEBUG +#ifdef JK_APR_POOL_DEBUG fprintf(stderr, apr_reset %p\n, p); #endif apr_pool_clear(p-_private); @@ -103,7 +107,7 @@ static void *jk_pool_apr_calloc(jk_pool_t *p, size_t size) { -#ifdef POOL_DEBUG +#ifdef JK_APR_POOL_DEBUG fprintf(stderr, apr_calloc %p %d\n, p, size); #endif /* assert( p-_private != NULL ) */ @@ -113,7 +117,7 @@ static void *jk_pool_apr_alloc(jk_pool_t *p, size_t size) { -#ifdef POOL_DEBUG +#ifdef JK_APR_POOL_DEBUG fprintf(stderr, apr_alloc %p %d\n, p, size); #endif @@ -127,7 +131,7 @@ { void *rc; -#ifdef POOL_DEBUG +#ifdef JK_APR_POOL_DEBUG fprintf(stderr, apr_realloc %p %d\n, p, sz); #endif if(!p || (!old old_sz)) { @@ -145,7 +149,7 @@ static void *jk_pool_apr_strdup(jk_pool_t *p, const char *s) { -#ifdef POOL_DEBUG +#ifdef JK_APR_POOL_DEBUG fprintf(stderr, apr_strdup %p %d\n, p, ((s==NULL)?-1: (int)strlen(s))); #endif return apr_pstrdup( (apr_pool_t *)p-_private, s); -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native2/server/apache2 mod_jk.c
costin 01/12/15 09:36:25 Modified:jk/native2/server/apache2 mod_jk.c Log: Use jk_map for headers. Make sure we copy all data we'll need later in long-lived pools. Changed the option ( that I added few weeks ago ) to set jk properties in httpd.conf to JkSet. All jk options that can be set in workers.properties can also be set using JkSet name value instead of name=value in the .properties file. Finally added the per-dir configuration that will allow the 'native mapper' to work. This is still experimental, but will provide huge improvements in jk scalability ! The idea is that you can use JkWorker in any Location ( eventually included in a VirtualHost section ) to specify that location is a webapp and what worker to use. Apache will use it's normal mapper to locate the context - without any need to duplicate this in jk. For sites with a large number of virtual hosts/apps this is very significant. ( of course, JkMount remains and we'll add the autoconf, but none of those should be used for large sites, at least not with the current uri mapper ) Revision ChangesPath 1.12 +123 -63 jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c Index: mod_jk.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/mod_jk.c,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- mod_jk.c 2001/12/14 07:14:59 1.11 +++ mod_jk.c 2001/12/15 17:36:25 1.12 @@ -59,7 +59,7 @@ * Description: Apache 2 plugin for Jakarta/Tomcat * * Author: Gal Shachor [EMAIL PROTECTED] * * Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.11 $ * + * Version: $Revision: 1.12 $ * ***/ /* @@ -151,12 +151,39 @@ if (context[0]!='/') return Context must start with /; workerEnv-init_data-put( NULL, workerEnv-init_data, - context, worker, NULL ); + ap_pstrdup(cmd-pool,context), + ap_pstrdup(cmd-pool,worker), + NULL ); return NULL; } +/** XXX This should be JkWebapp, it 'defines' the app + */ +static const char *jk_set_worker(cmd_parms *cmd, void *per_dir, + const char *workerName) +{ +jk_uriEnv_t *uriEnv=(jk_uriEnv_t *)per_dir; +jk_webapp_t *webapp; +server_rec *s = cmd-server; + +jk_workerEnv_t *workerEnv = +(jk_workerEnv_t *)ap_get_module_config(s-module_config, jk_module); + +/* Do we know the url ? */ +webapp=workerEnv-createWebapp( workerEnv, NULL, NULL, NULL ); +uriEnv-webapp=webapp; +webapp-workerName=ap_pstrdup(cmd-pool, workerName); + +uriEnv-workerEnv=workerEnv; + +fprintf(stderr, XXX Set worker %p %s\n, uriEnv, workerName ); + +return NULL; +} + + /* * JkWorkersFile Directive Handling * @@ -206,7 +233,7 @@ } /* - * JkWorker name value + * JkSet name value */ static const char *jk_worker_property(cmd_parms *cmd, void *dummy, @@ -247,8 +274,10 @@ } if(value) { -void *old = NULL; -m-put(NULL, m, name, value, old); +m-put(NULL, m, + ap_pstrdup(cmd-pool, name), + ap_pstrdup(cmd-pool, value), + NULL); /*printf(Setting %s %s\n, name, value);*/ } return NULL; @@ -294,7 +323,8 @@ jk_workerEnv_t *workerEnv = (jk_workerEnv_t *)ap_get_module_config(s-module_config, jk_module); -workerEnv-init_data-put( NULL, workerEnv-init_data, logger.file.level, log_level, NULL); +workerEnv-init_data-put( NULL, workerEnv-init_data, logger.file.level, + ap_pstrdup(cmd-pool, log_level), NULL); return NULL; } @@ -311,7 +341,8 @@ jk_workerEnv_t *workerEnv = (jk_workerEnv_t *)ap_get_module_config(s-module_config, jk_module); -workerEnv-init_data-put( NULL, workerEnv-init_data, logger.file.timeFormat, log_format, NULL); +workerEnv-init_data-put( NULL, workerEnv-init_data, logger.file.timeFormat, + ap_pstrdup(cmd-pool,log_format), NULL); return NULL; } @@ -513,7 +544,8 @@ workerEnv-envvars_in_use = JK_TRUE; -workerEnv-envvars-put(NULL, workerEnv-envvars, env_name, default_value, NULL); +workerEnv-envvars-put(NULL, workerEnv-envvars, env_name, +
cvs commit: jakarta-tomcat-connectors/jk/native2/include jk_map.h jk_service.h
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: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native2/common jk_handler_response.c
costin 01/12/15 09:23:28 Modified:jk/native2/common jk_handler_response.c Log: Change the storage of headers and attributes. The start_response methods was changed - it didn't actually started the response, but set the fields in request_rec. ( probably in a jk3 we should change jk_service to use virtual methods, and use directly the 'original' server structure and methods ) Revision ChangesPath 1.9 +55 -56 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.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- jk_handler_response.c 2001/12/14 07:12:42 1.8 +++ jk_handler_response.c 2001/12/15 17:23:28 1.9 @@ -116,81 +116,80 @@ jk_endpoint_t *ae, jk_logger_t*l) { -int err; -unsigned i; +int err=JK_FALSE; +int i; jk_pool_t * pool = s-pool; +int headerCount; s-status = msg-getInt(msg); s-msg = (char *)msg-getString(msg); if (s-msg) { jk_xlate_from_ascii(s-msg, strlen(s-msg)); +/* Do we want this ? Probably not needed, but safer ! */ +s-msg = ae-cPool-pstrdup( ae-cPool, s-msg ); } -s-out_headers = msg-getInt(msg); -s-out_header_names = NULL; -s-out_header_values = NULL; - -if (s-out_headers 0 ) { -s-out_header_names = pool-alloc(pool, sizeof(char *) * s-out_headers); -s-out_header_values = pool-alloc(pool, sizeof(char *) * s-out_headers); - -if (s-out_header_names==NULL || -s-out_header_values==NULL) { -l-jkLog(l, JK_LOG_ERROR, - handler.startResponse() OutOfMemoryError %d headers\n, - s-out_headers); -return JK_HANDLER_FATAL; -} -for(i = 0 ; i s-out_headers ; i++) { -unsigned short name = msg-peekInt(msg) ; +headerCount = msg-getInt(msg); + +/* XXX assert msg-headers_out is set - the server adapter should know what + kind of map to use ! */ -if ((name 0XFF00) == 0XA000) { -msg-getInt(msg); -name = name 0X00FF; -if (name = SC_RES_HEADERS_NUM) { -s-out_header_names[i] = -(char *)jk_requtil_getHeaderById(name); -} else { -l-jkLog(l, JK_LOG_ERROR, - handler.response() Invalid header id (%d)\n, - name); -return JK_HANDLER_FATAL; -} +for(i = 0 ; i headerCount ; i++) { +char *nameS; +char *valueS; +unsigned short name = msg-peekInt(msg) ; + +if ((name 0XFF00) == 0XA000) { +msg-getInt(msg); +name = name 0X00FF; +if (name = SC_RES_HEADERS_NUM) { +nameS = +(char *)jk_requtil_getHeaderById(name); } else { -s-out_header_names[i] = (char *)msg-getString(msg); -if (!s-out_header_names[i]) { -l-jkLog(l, JK_LOG_ERROR, - handler.response() Null header name \n); -return JK_HANDLER_FATAL; -} -jk_xlate_from_ascii(s-out_header_names[i], -strlen(s-out_header_names[i])); +l-jkLog(l, JK_LOG_ERROR, + handler.response() Invalid header id (%d)\n, + name); +return JK_HANDLER_FATAL; } -s-out_header_values[i] = (char *)msg-getString(msg); -if (!s-out_header_values[i]) { +} else { +nameS = (char *)msg-getString(msg); +if (nameS==NULL) { l-jkLog(l, JK_LOG_ERROR, - Error ajp_unmarshal_response - Null header value\n); + handler.response() Null header name \n); return JK_HANDLER_FATAL; } - -jk_xlate_from_ascii(s-out_header_values[i], -strlen(s-out_header_values[i])); - -l-jkLog(l, JK_LOG_DEBUG, - ajp_unmarshal_response: Header[%d] [%s] = [%s]\n, - i, - s-out_header_names[i], - s-out_header_values[i]); +jk_xlate_from_ascii(nameS, strlen(nameS)); } + +valueS = (char *)msg-getString(msg); +if
cvs commit: jakarta-tomcat-4.0/catalina/src/conf server-noexamples.xml.config server.xml
craigmcc01/12/15 13:46:51 Modified:catalina/src/conf server-noexamples.xml.config server.xml Log: Correct JDBCRealm examples for the proper way to send username and password to the database. Revision ChangesPath 1.8 +4 -2 jakarta-tomcat-4.0/catalina/src/conf/server-noexamples.xml.config Index: server-noexamples.xml.config === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/server-noexamples.xml.config,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- server-noexamples.xml.config 2001/11/06 08:46:44 1.7 +++ server-noexamples.xml.config 2001/12/15 21:46:51 1.8 @@ -143,7 +143,8 @@ !-- Realm className=org.apache.catalina.realm.JDBCRealm debug=99 driverName=org.gjt.mm.mysql.Driver - connectionURL=jdbc:mysql://localhost/authority?user=test;password=test + connectionURL=jdbc:mysql://localhost/authority + connectionName=test connectionPassword=test userTable=users userNameCol=user_name userCredCol=user_pass userRoleTable=user_roles roleNameCol=role_name / -- @@ -151,7 +152,8 @@ !-- Realm className=org.apache.catalina.realm.JDBCRealm debug=99 driverName=oracle.jdbc.driver.OracleDriver - connectionURL=jdbc:oracle:thin:@ntserver:1521:ORCL?user=scott;password=tiger + connectionURL=jdbc:oracle:thin:@ntserver:1521:ORCL + connectionName=scott connectionPassword=tiger userTable=users userNameCol=user_name userCredCol=user_pass userRoleTable=user_roles roleNameCol=role_name / -- 1.46 +4 -2 jakarta-tomcat-4.0/catalina/src/conf/server.xml Index: server.xml === RCS file: /home/cvs/jakarta-tomcat-4.0/catalina/src/conf/server.xml,v retrieving revision 1.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- server.xml2001/11/09 19:32:59 1.45 +++ server.xml2001/12/15 21:46:51 1.46 @@ -147,7 +147,8 @@ !-- Realm className=org.apache.catalina.realm.JDBCRealm debug=99 driverName=org.gjt.mm.mysql.Driver - connectionURL=jdbc:mysql://localhost/authority?user=test;password=test + connectionURL=jdbc:mysql://localhost/authority + connectionName=test connectionPassword=test userTable=users userNameCol=user_name userCredCol=user_pass userRoleTable=user_roles roleNameCol=role_name / -- @@ -155,7 +156,8 @@ !-- Realm className=org.apache.catalina.realm.JDBCRealm debug=99 driverName=oracle.jdbc.driver.OracleDriver - connectionURL=jdbc:oracle:thin:@ntserver:1521:ORCL?user=scott;password=tiger + connectionURL=jdbc:oracle:thin:@ntserver:1521:ORCL + connectionName=scott connectionPassword=tiger userTable=users userNameCol=user_name userCredCol=user_pass userRoleTable=user_roles roleNameCol=role_name / -- -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Trouble building mod_webapp.so for Apache 2.0.28
I am unable to build mod_webapp.so for apache 2.0.28 on my redhat 7.2 system. Here's what I've been doing. The problem comes during the make process. tar -xvzf webapp-module-1.0.1-tc401-src.tar.gz [...] cd webapp-module-1.0.1-tc401/ [...] ./support/buildconf.sh [...] ./configure --with-apxs=/usr/local/apache2/bin/apxs [...] make [...] *** Warning: This library needs some functionality provided by -lwebapp. *** I have the capability to make that library automatically link in when *** you link to this library. But I can only do this if you have a *** shared version of the library, which you do not appear to have. *** Warning: libtool could not satisfy all declared inter-library *** dependencies of module mod_webapp. Therefore, libtool will create *** a static module, that should work as long as the dlopening *** application is linked with the -dlopen flag. make[2]: Leaving directory `/root/webapp-module-1.0.1-tc401/apache-2.0' make[1]: Exiting directory apache-2.0 make[1]: Leaving directory `/root/webapp-module-1.0.1-tc401' At this point make finishes and there is no mod_webapp.so in apache-2.0. Does anyone have any idea how to get this to work? Any help would be greatly appriciated. Thanks in advance. Cavan Morris [EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]