mturk 2004/12/16 01:49:42 Modified: jk/native/common jk_ajp_common.c jk_ajp_common.h Log: Use zero for default cache timeout value, and properly set the last access time value. Revision Changes Path 1.69 +9 -9 jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c Index: jk_ajp_common.c =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c,v retrieving revision 1.68 retrieving revision 1.69 diff -u -r1.68 -r1.69 --- jk_ajp_common.c 16 Dec 2004 08:38:05 -0000 1.68 +++ jk_ajp_common.c 16 Dec 2004 09:49:41 -0000 1.69 @@ -1958,14 +1958,13 @@ if (pThis && pThis->worker_private && je) { ajp_worker_t *aw = pThis->worker_private; ajp_endpoint_t *ae = NULL; + time_t now = time(NULL); if (aw->ep_cache_sz) { int rc; JK_ENTER_CS(&aw->cs, rc); if (rc) { unsigned i; - time_t now; - now = time(NULL); for (i = 0; i < aw->ep_cache_sz; i++) { if (aw->ep_cache[i]) { ae = aw->ep_cache[i]; @@ -1974,9 +1973,10 @@ } } /* Handle enpoint cache timeouts */ - if (aw->cache_timeout) { - for (; i < aw->ep_cache_sz; i++) { - if (aw->ep_cache[i]) { + if (ae && aw->cache_timeout) { + for (i = 0; i < aw->ep_cache_sz; i++) { + /* Skip the cached enty */ + if (aw->ep_cache[i] && (ae != aw->ep_cache[i])) { int elapsed = (int)(now - ae->last_access); if (elapsed > aw->cache_timeout) { @@ -1994,7 +1994,6 @@ if (ae->sd > 0) { /* Handle timeouts for open sockets */ int elapsed = (int)(now - ae->last_access); - ae->last_access = now; jk_log(l, JK_LOG_DEBUG, "time elapsed since last request = %u seconds\n", elapsed); @@ -2007,18 +2006,19 @@ ae->sd = -1; /* just to avoid twice close */ } } + ae->last_access = now; *je = &ae->endpoint; JK_TRACE_EXIT(l); return JK_TRUE; } } } - + /* Create new endpoint */ ae = (ajp_endpoint_t *) calloc(1, sizeof(ajp_endpoint_t)); if (ae) { ae->sd = -1; ae->reuse = JK_FALSE; - ae->last_access = time(NULL); + ae->last_access = now; jk_open_pool(&ae->pool, ae->buf, sizeof(ae->buf)); ae->worker = pThis->worker_private; ae->endpoint.endpoint_private = ae; 1.27 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.h Index: jk_ajp_common.h =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.h,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- jk_ajp_common.h 10 Nov 2004 16:36:48 -0000 1.26 +++ jk_ajp_common.h 16 Dec 2004 09:49:42 -0000 1.27 @@ -188,7 +188,7 @@ #define AJP_HEADER_LEN (4) #define AJP_HEADER_SZ_LEN (2) #define CHUNK_BUFFER_PAD (12) -#define AJP_DEF_CACHE_TIMEOUT (15) +#define AJP_DEF_CACHE_TIMEOUT (0) #define AJP_DEF_CONNECT_TIMEOUT (0) /* NO CONNECTION TIMEOUT => NO CPING/CPONG */ #define AJP_DEF_REPLY_TIMEOUT (0) /* NO REPLY TIMEOUT */ #define AJP_DEF_PREPOST_TIMEOUT (0) /* NO PREPOST TIMEOUT => NO CPING/CPONG */
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]