costin 02/01/06 01:06:02 Modified: jk/native2 build.xml jk/native2/common jk_handler_response.c jk_lb_worker.c jk/native2/common/apr jk_channel_apr_socket.c jk/native2/server/apache2 jk_logger_apache2.c jk_map_aprtable.c jk_pool_apr.c jk_service_apache2.c Log: Few fixes and debug statements. I reverted to use jk maps for now, there's a strange bug with apr maps. The extra debug statements will be removed after I figure out the problem. Revision Changes Path 1.10 +1 -1 jakarta-tomcat-connectors/jk/native2/build.xml Index: build.xml =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/build.xml,v retrieving revision 1.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- build.xml 5 Jan 2002 10:03:43 -0000 1.9 +++ build.xml 6 Jan 2002 09:06:02 -0000 1.10 @@ -43,7 +43,7 @@ <!-- ==================== Targets ==================== --> - <target name="main" depends="init,apache20,jni,apache13,unixsocket"> + <target name="main" depends="init,apache20,jni,unixsocket"> </target> <target name="init" > 1.12 +3 -3 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.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- jk_handler_response.c 17 Dec 2001 07:17:08 -0000 1.11 +++ jk_handler_response.c 6 Jan 2002 09:06:02 -0000 1.12 @@ -166,9 +166,9 @@ jk_xlate_from_ascii(valueS, strlen(valueS)); - /* env->l->jkLog(env, env->l, JK_LOG_INFO, */ - /* "handler.response() Header[%d] [%s] = [%s]\n", */ - /* i, nameS, valueS); */ + env->l->jkLog(env, env->l, JK_LOG_INFO, + "handler.response() Header[%d] [%s] = [%s]\n", + i, nameS, valueS); /* Do we want this ? Preserve the headers, maybe someone will need them. Alternative is to use a different buffer every time, 1.11 +5 -4 jakarta-tomcat-connectors/jk/native2/common/jk_lb_worker.c Index: jk_lb_worker.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/jk_lb_worker.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- jk_lb_worker.c 16 Dec 2001 23:18:11 -0000 1.10 +++ jk_lb_worker.c 6 Jan 2002 09:06:02 -0000 1.11 @@ -60,7 +60,7 @@ * several workers. * * Author: Gal Shachor <[EMAIL PROTECTED]> * * Based on: * - * Version: $Revision: 1.10 $ * + * Version: $Revision: 1.11 $ * ***************************************************************************/ #include "jk_pool.h" @@ -110,7 +110,7 @@ It'll also adjust the load balancing factors. */ static jk_worker_t *get_most_suitable_worker(jk_env_t *env, jk_worker_t *p, - jk_ws_service_t *s) + jk_ws_service_t *s, int attempt) { jk_worker_t *rc = NULL; double lb_min = 0.0; @@ -120,7 +120,7 @@ if(session_route) { for(i = 0 ; i < p->num_of_workers ; i++) { if(0 == strcmp(session_route, p->lb_workers[i]->name)) { - if(p->lb_workers[i]->in_error_state) { + if(attempt > 0 && p->lb_workers[i]->in_error_state) { break; } else { return p->lb_workers[i]; @@ -165,6 +165,7 @@ { /* The 'real' endpoint */ jk_endpoint_t *end = NULL; + int attempt=0; if(e==NULL || s==NULL || is_recoverable_error==NULL) { env->l->jkLog(env, env->l, JK_LOG_ERROR, @@ -177,7 +178,7 @@ e->realEndpoint=NULL; while(1) { - jk_worker_t *rec = get_most_suitable_worker(env, e->worker, s); + jk_worker_t *rec = get_most_suitable_worker(env, e->worker, s, attempt++); int rc; int is_recoverable = JK_FALSE; 1.2 +15 -15 jakarta-tomcat-connectors/jk/native2/common/apr/jk_channel_apr_socket.c Index: jk_channel_apr_socket.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/common/apr/jk_channel_apr_socket.c,v retrieving revision 1.1 retrieving revision 1.2 diff -u -r1.1 -r1.2 --- jk_channel_apr_socket.c 31 Dec 2001 22:39:45 -0000 1.1 +++ jk_channel_apr_socket.c 6 Jan 2002 09:06:02 -0000 1.2 @@ -173,7 +173,7 @@ host = jk_map_getStrProp( env, props, "worker", worker_name, "host", host); tmp = jk_map_getStrProp( env, props, - "worker", worker_name, "port", NULL ); + "worker", worker_name, "port", NULL ); if( tmp != NULL ) port=jk_map_str2int( env, tmp); @@ -186,7 +186,7 @@ err=jk_channel_socket_resolve( env, host, port, socketInfo ); if( err!= JK_TRUE ) { env->l->jkLog(env, env->l, JK_LOG_ERROR, "jk_channel_socket_init: " - "can't resolve %s:%d errno=%d\n", host, port, errno ); + "can't resolve %s:%d errno=%d\n", host, port, errno ); } env->l->jkLog(env, env->l, JK_LOG_INFO, "channel_socket.init(): %s:%d for %s\n", host, @@ -198,8 +198,8 @@ /** private: resolve the address on init */ static int JK_METHOD jk_channel_socket_resolve(jk_env_t *env, -char *host, short port, -jk_channel_socket_private_t *rc) + char *host, short port, + jk_channel_socket_private_t *rc) { /* * If the hostname is an absolut path, we want a UNIX socket. @@ -221,15 +221,6 @@ } } return JK_TRUE; - -} - -static int jk_close_socket(jk_env_t *env, apr_socket_t *s) -{ - if (apr_socket_close(s)==APR_SUCCESS) - return(0); - else - return(-1); } @@ -354,14 +345,23 @@ if( chD==NULL ) return JK_FALSE; + if (chD->type==TYPE_UNIX) { + close( chD->unixsock ); + return 0; + } + sd=chD->sock; chD->sock=NULL; /* XXX check it. */ /* nothing else to clean, the socket_data was allocated ouf of * endpoint's pool */ - return jk_close_socket(env, sd); + if (apr_socket_close(sd)==APR_SUCCESS) + return(0); + else + return(-1); } + /** send a long message * @param sd opened socket. * @param b buffer containing the data. @@ -457,7 +457,7 @@ (char *)b + rdlen, len - rdlen, 0); - if(-1 == this_time) { + if(-1 == this_time) { if(EAGAIN == errno) { continue; } 1.12 +2 -0 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.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- jk_logger_apache2.c 17 Dec 2001 07:17:08 -0000 1.11 +++ jk_logger_apache2.c 6 Jan 2002 09:06:02 -0000 1.12 @@ -186,6 +186,8 @@ l->open =jk_logger_apache2_open; l->jkLog = jk_logger_apache2_jkLog; + l->level=JK_LOG_ERROR_LEVEL; + *result=(void *)l; return JK_TRUE; 1.4 +1 -1 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.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- jk_map_aprtable.c 16 Dec 2001 23:36:58 -0000 1.3 +++ jk_map_aprtable.c 6 Jan 2002 09:06:02 -0000 1.4 @@ -87,7 +87,7 @@ { apr_table_t *aprMap=_this->_private; if( oldValue != NULL ) { - *oldValue=apr_table_get( aprMap, name ); + *oldValue=apr_table_get( aprMap, (char *)name ); } apr_table_setn( aprMap, name, (char *)value ); 1.8 +4 -1 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.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- jk_pool_apr.c 16 Dec 2001 23:36:58 -0000 1.7 +++ jk_pool_apr.c 6 Jan 2002 09:06:02 -0000 1.8 @@ -65,8 +65,11 @@ #include "jk_env.h" #include "apr_pools.h" #include "apr_strings.h" +#include "apr_network_io.h" +#include "apr_errno.h" +#include "apr_general.h" -#include "jk_apache2.h" +/* #include "jk_apache2.h" */ /* JK_APR_POOL_DEBUG will enable verbose messages on allocation. 1.6 +24 -4 jakarta-tomcat-connectors/jk/native2/server/apache2/jk_service_apache2.c Index: jk_service_apache2.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native2/server/apache2/jk_service_apache2.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_service_apache2.c 17 Dec 2001 07:17:08 -0000 1.5 +++ jk_service_apache2.c 6 Jan 2002 09:06:02 -0000 1.6 @@ -59,7 +59,7 @@ * Description: Apache 2 plugin for Jakarta/Tomcat * Author: Gal Shachor <[EMAIL PROTECTED]> * Henri Gomez <[EMAIL PROTECTED]> - * Version: $Revision: 1.5 $ + * Version: $Revision: 1.6 $ */ #include "apu_compat.h" @@ -92,7 +92,7 @@ #include "jk_apache2.h" -#define USE_APRTABLES +/* #define USE_APRTABLES */ #define NULL_FOR_EMPTY(x) ((x && !strlen(x)) ? NULL : x) @@ -115,11 +115,15 @@ headers=s->headers_out; /* XXX As soon as we switch to jk_map_apache2, this will not be needed ! */ + env->l->jkLog(env, env->l, JK_LOG_INFO, + "service.head() %d %d\n", s->status, headers->size(env, headers )); for(h = 0 ; h < headers->size( env, headers ) ; h++) { char *name=headers->nameAt( env, headers, h ); char *val=headers->valueAt( env, headers, h ); + env->l->jkLog(env, env->l, JK_LOG_INFO, + "service.head() %s: %s\n", name, val); /* the cmp can also be avoided in we do this earlier and use the header id */ if(!strcasecmp(name, "Content-type")) { @@ -212,6 +216,7 @@ size_t r = 0; long ll=len; char *bb=(char *)b; + request_rec *rr=s->ws_private; if(!s->response_started) { env->l->jkLog(env, env->l, JK_LOG_INFO, @@ -220,6 +225,21 @@ return JK_FALSE; } } + + + { + const apr_array_header_t *t = apr_table_elts(rr->headers_out); + if(t && t->nelts) { + int i; + + apr_table_entry_t *elts = (apr_table_entry_t *)t->elts; + + for(i = 0 ; i < t->nelts ; i++) { + env->l->jkLog(env, env->l, JK_LOG_INFO, "OutHeaders %s: %s\n", + elts[i].key, elts[i].val); + } + } + } /* Debug - try to get around rwrite */ while( ll > 0 ) { @@ -434,7 +454,7 @@ #ifdef USE_APRTABLES jk_map_aprtable_factory( env, s->pool, - &s->headers_in, + (void *)&s->headers_in, "map", "aprtable" ); s->headers_in->init( env, s->headers_in, 0, r->headers_in); #else @@ -463,7 +483,7 @@ } #ifdef USE_APRTABLES - jk_map_aprtable_factory( env, s->pool, &s->headers_out, + jk_map_aprtable_factory( env, s->pool, (void *)&s->headers_out, "map", "aprtable" ); s->headers_in->init( env, s->headers_out, 0, r->headers_out); #else
-- To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]> For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>