cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.h
mturk 2005/09/13 23:45:00 Modified:jk/native/common jk_ajp_common.c jk_connect.h Log: Make jk_sleep_def as nonstatic. Revision ChangesPath 1.120 +2 -2 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.119 retrieving revision 1.120 diff -u -r1.119 -r1.120 --- jk_ajp_common.c 26 May 2005 14:36:14 - 1.119 +++ jk_ajp_common.c 14 Sep 2005 06:45:00 - 1.120 @@ -36,7 +36,7 @@ #endif /* Sleep for 100ms */ -static void jk_sleep_def(void) +void jk_sleep_def(void) { #ifdef OS2 DosSleep(100); 1.16 +3 -1 jakarta-tomcat-connectors/jk/native/common/jk_connect.h Index: jk_connect.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.h,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- jk_connect.h 24 Apr 2005 09:52:57 - 1.15 +++ jk_connect.h 14 Sep 2005 06:45:00 - 1.16 @@ -55,6 +55,8 @@ int jk_is_socket_connected(int sd); +void jk_sleep_def(); + #ifdef __cplusplus } #endif /* __cplusplus */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/26 07:36:14 Modified:jk/native/common jk_ajp_common.c Log: Simplify cping/cpong input event. Set default socket buffer size to 8K. Revision ChangesPath 1.119 +19 -12 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.118 retrieving revision 1.119 diff -u -r1.118 -r1.119 --- jk_ajp_common.c 19 May 2005 10:14:29 - 1.118 +++ jk_ajp_common.c 26 May 2005 14:36:14 - 1.119 @@ -766,27 +766,34 @@ static int ajp_is_input_event(ajp_endpoint_t * ae, int timeout, jk_logger_t *l) { fd_set rset; -fd_set eset; struct timeval tv; int rc; FD_ZERO(rset); -FD_ZERO(eset); FD_SET(ae-sd, rset); -FD_SET(ae-sd, eset); - tv.tv_sec = timeout / 1000; tv.tv_usec = (timeout % 1000) * 1000; -rc = select(ae-sd + 1, rset, NULL, eset, tv); - -if ((rc 0) || (FD_ISSET(ae-sd, eset))) { +do { +rc = select(ae-sd + 1, rset, NULL, NULL, tv); +} while (rc 0 errno == EINTR); + +if (rc == 0) { +/* Timeout. Set the errno to timeout */ +#if defined(WIN32) || (defined(NETWARE) defined(__NOVELL_LIBC__)) +errno = WSAETIMEDOUT - WSABASEERR; +#else +errno = ETIMEDOUT; +#endif +return JK_FALSE; +} +else if (rc 0) { jk_log(l, JK_LOG_WARNING, - error during select [%d], rc); + error during select err=%d, errno); return JK_FALSE; } - -return ((FD_ISSET(ae-sd, rset)) ? JK_TRUE : JK_FALSE); +else +return JK_TRUE; } @@ -1880,7 +1887,7 @@ jk_get_worker_socket_timeout(props, p-name, AJP_DEF_SOCKET_TIMEOUT); p-socket_buf = -jk_get_worker_socket_buffer(props, p-name, 512); +jk_get_worker_socket_buffer(props, p-name, 8192); p-keepalive = jk_get_worker_socket_keepalive(props, p-name, JK_FALSE); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/19 03:14:29 Modified:jk/native/common jk_ajp_common.c Log: Change the log level for cping/cpong failrue. Those messages are informative rather then error. No functional change. Revision ChangesPath 1.118 +10 -8 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.117 retrieving revision 1.118 diff -u -r1.117 -r1.118 --- jk_ajp_common.c 18 May 2005 18:04:53 - 1.117 +++ jk_ajp_common.c 19 May 2005 10:14:29 - 1.118 @@ -781,7 +781,7 @@ rc = select(ae-sd + 1, rset, NULL, eset, tv); if ((rc 0) || (FD_ISSET(ae-sd, eset))) { -jk_log(l, JK_LOG_ERROR, +jk_log(l, JK_LOG_WARNING, error during select [%d], rc); return JK_FALSE; } @@ -815,7 +815,7 @@ /* wait for Pong reply for timeout milliseconds */ if (ajp_is_input_event(ae, timeout, l) == JK_FALSE) { -jk_log(l, JK_LOG_ERROR, timeout in reply pong); +jk_log(l, JK_LOG_INFO, timeout in reply pong); JK_TRACE_EXIT(l); return JK_FALSE; } @@ -830,7 +830,7 @@ } if ((cmd = jk_b_get_byte(msg)) != AJP13_CPONG_REPLY) { -jk_log(l, JK_LOG_ERROR, +jk_log(l, JK_LOG_INFO, awaited reply cpong, received %d instead, cmd); JK_TRACE_EXIT(l); @@ -853,10 +853,12 @@ ae-worker-socket_timeout, ae-worker-socket_buf, l); if (ae-sd = 0) { -jk_log(l, JK_LOG_DEBUG, - Connected socket %d to (%s), - ae-sd, jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); - +if (JK_IS_DEBUG_LEVEL(l)) { +jk_log(l, JK_LOG_DEBUG, + Connected socket %d to (%s), + ae-sd, + jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); +} /* set last_access only if needed */ if (ae-worker-cache_timeout 0 || ae-worker-recycle_timeout 0) ae-last_access = time(NULL); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/15 05:07:27 Modified:jk/native/common jk_ajp_common.c Log: Log case if there is no free cache slot on ajp_done. This should never hapen at the first place, and should probably be removed. Revision ChangesPath 1.112 +8 -4 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.111 retrieving revision 1.112 diff -u -r1.111 -r1.112 --- jk_ajp_common.c 14 May 2005 10:05:42 - 1.111 +++ jk_ajp_common.c 15 May 2005 12:07:27 - 1.112 @@ -2074,10 +2074,14 @@ JK_TRACE_EXIT(l); return JK_TRUE; } -jk_log(l, JK_LOG_INFO, -could not find empty cache slot from %d for worker %s -. Rise worker cachesize, +/* XXX: This should never hapen because + * there is always free empty cache slot + */ +jk_log(l, JK_LOG_ERROR, +could not find empty cache slot from %d for worker %s, w-ep_cache_sz, w-name); +JK_TRACE_EXIT(l); +return JK_FALSE; } jk_log(l, JK_LOG_ERROR, - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/15 06:40:02 Modified:jk/native/common jk_ajp_common.c Log: Use info level for cping/cpong messages. Also select might return 0 meaning that the socket has been closed in the middle of select operation, so do not log that as error. Revision ChangesPath 1.113 +3 -3 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.112 retrieving revision 1.113 diff -u -r1.112 -r1.113 --- jk_ajp_common.c 15 May 2005 12:07:27 - 1.112 +++ jk_ajp_common.c 15 May 2005 13:40:02 - 1.113 @@ -780,7 +780,7 @@ rc = select(ae-sd + 1, rset, NULL, eset, tv); -if ((rc 1) || (FD_ISSET(ae-sd, eset))) { +if ((rc 0) || (FD_ISSET(ae-sd, eset))) { jk_log(l, JK_LOG_ERROR, error during select [%d], rc); return JK_FALSE; @@ -806,7 +806,7 @@ /* Send CPing query */ if (ajp_connection_tcp_send_message(ae, msg, l) != JK_TRUE) { -jk_log(l, JK_LOG_ERROR, +jk_log(l, JK_LOG_INFO, can't send cping query); JK_TRACE_EXIT(l); return JK_FALSE; @@ -823,7 +823,7 @@ /* Read and check for Pong reply */ if (ajp_connection_tcp_get_message(ae, msg, l) != JK_TRUE) { -jk_log(l, JK_LOG_ERROR, +jk_log(l, JK_LOG_INFO, awaited reply cpong, not received); JK_TRACE_EXIT(l); return JK_FALSE; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/15 09:25:38 Modified:jk/native/common jk_ajp_common.c Log: Differentiate logging when trying next connection. Revision ChangesPath 1.114 +8 -5 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.113 retrieving revision 1.114 diff -u -r1.113 -r1.114 --- jk_ajp_common.c 15 May 2005 13:40:02 - 1.113 +++ jk_ajp_common.c 15 May 2005 16:25:38 - 1.114 @@ -1201,12 +1201,15 @@ * loop. */ if (err || ((rc = ajp_connection_tcp_send_message(ae, op-request, l)) != JK_TRUE)) { -jk_log(l, JK_LOG_INFO, - Error sending request. Will try another pooled connection); -if (rc != JK_FATAL_ERROR) +if (rc != JK_FATAL_ERROR) { +jk_log(l, JK_LOG_INFO, + Error sending request. Will try another pooled connection); ajp_next_connection(ae, l); +} else { op-recoverable = JK_FALSE; +jk_log(l, JK_LOG_INFO, + Error sending request. Unrecoverable operation); JK_TRACE_EXIT(l); return JK_FALSE; } @@ -1498,7 +1501,7 @@ /* we just can't recover, unset recover flag */ if (headeratclient == JK_FALSE) { jk_log(l, JK_LOG_ERROR, - Tomcat is down or network problems. + Tomcat is down or refused connection. No response has been sent to the client (yet)); /* * communication with tomcat has been interrupted BEFORE - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/15 09:38:04 Modified:jk/native/common jk_ajp_common.c Log: Remove checking if socket is connected after the connect call. Revision ChangesPath 1.115 +1 -13 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.114 retrieving revision 1.115 diff -u -r1.114 -r1.115 --- jk_ajp_common.c 15 May 2005 16:25:38 - 1.114 +++ jk_ajp_common.c 15 May 2005 16:38:04 - 1.115 @@ -860,18 +860,6 @@ /* set last_access only if needed */ if (ae-worker-cache_timeout 0 || ae-worker-recycle_timeout 0) ae-last_access = time(NULL); -if (ae-worker-socket_timeout 0) { -if (!jk_is_socket_connected(ae-sd)) { -jk_log(l, JK_LOG_INFO, - Socket %d to (%s) is not connected any more (errno=%d), - ae-sd, jk_dump_hinfo(ae-worker-worker_inet_addr, buf), - errno); -jk_close_socket(ae-sd); -ae-sd = -1; -JK_TRACE_EXIT(l); -return JK_FALSE; -} -} /* Check if we must execute a logon after the physical connect */ if (ae-worker-logon != NULL) { rc = ae-worker-logon(ae, l); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/15 10:06:05 Modified:jk/native/common jk_ajp_common.c Log: Replace all 'unsigned' with 'unsigned int'. No functional change, just being ANSI C conformant. Revision ChangesPath 1.116 +7 -7 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.115 retrieving revision 1.116 diff -u -r1.115 -r1.116 --- jk_ajp_common.c 15 May 2005 16:38:04 - 1.115 +++ jk_ajp_common.c 15 May 2005 17:06:05 - 1.116 @@ -634,7 +634,7 @@ d-header_values = jk_pool_alloc(p, sizeof(char *) * d-num_headers); if (d-header_names d-header_values) { -unsigned i; +unsigned int i; for (i = 0; i d-num_headers; i++) { unsigned short name = jk_b_pget_int(msg, msg-pos); @@ -1043,10 +1043,10 @@ */ static int ajp_read_fully_from_server(jk_ws_service_t *s, jk_logger_t *l, - unsigned char *buf, unsigned len) + unsigned char *buf, unsigned int len) { -unsigned rdlen = 0; -unsigned padded_len = len; +unsigned int rdlen = 0; +unsigned int padded_len = len; JK_TRACE_ENTER(l); if (s-is_chunked s-no_more_chunks) { @@ -1063,7 +1063,7 @@ } while (rdlen padded_len) { -unsigned this_time = 0; +unsigned int this_time = 0; if (!s-read(s, buf + rdlen, len - rdlen, this_time)) { /* Remote Client read failed. */ JK_TRACE_EXIT(l); @@ -1370,7 +1370,7 @@ case JK_AJP13_SEND_BODY_CHUNK: { -unsigned len = (unsigned)jk_b_get_int(msg); +unsigned int len = (unsigned int)jk_b_get_int(msg); if (!r-write(r, msg-buf + msg-pos, len)) { jk_log(l, JK_LOG_INFO, Connection aborted or network problems); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/14 03:05:42 Modified:jk/native/common jk_ajp_common.c Log: Update last_access on done too. Revision ChangesPath 1.111 +4 -1 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.110 retrieving revision 1.111 diff -u -r1.110 -r1.111 --- jk_ajp_common.c 13 May 2005 07:19:32 - 1.110 +++ jk_ajp_common.c 14 May 2005 10:05:42 - 1.111 @@ -2060,6 +2060,9 @@ } ajp_reset_endpoint(p, l); *e = NULL; +/* set last_access only if needed */ +if (w-cache_timeout 0 || w-recycle_timeout 0) +p-last_access = time(NULL); JK_LEAVE_CS(w-cs, rc); if (sock = 0) jk_shutdown_socket(sock); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/13 00:19:32 Modified:jk/native/common jk_ajp_common.c Log: Log as warning when there is no free endpoint pool entiries free. Revision ChangesPath 1.110 +7 -2 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.109 retrieving revision 1.110 diff -u -r1.109 -r1.110 --- jk_ajp_common.c 6 May 2005 13:59:34 - 1.109 +++ jk_ajp_common.c 13 May 2005 07:19:32 - 1.110 @@ -2055,10 +2055,10 @@ for(i = w-ep_cache_sz - 1; i = 0; i--) { if (w-ep_cache[i] == NULL) { w-ep_cache[i] = p; -ajp_reset_endpoint(p, l); break; } } +ajp_reset_endpoint(p, l); *e = NULL; JK_LEAVE_CS(w-cs, rc); if (sock = 0) @@ -2124,6 +2124,11 @@ JK_TRACE_EXIT(l); return JK_TRUE; } +else { +jk_log(l, JK_LOG_WARNING, +Unable to get the free endpoint for worker %s from %d slots, +aw-name, aw-ep_cache_sz); +} JK_LEAVE_CS(aw-cs, rc); } else { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/06 06:49:32 Modified:jk/native/common jk_ajp_common.c Log: If tomcat closes the connection after sending initial request, do not log that as error, because probably the 'secret' has been rejected. Revision ChangesPath 1.108 +14 -6 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.107 retrieving revision 1.108 diff -u -r1.107 -r1.108 --- jk_ajp_common.c 27 Apr 2005 14:12:48 - 1.107 +++ jk_ajp_common.c 6 May 2005 13:49:32 - 1.108 @@ -960,11 +960,19 @@ rc = jk_tcp_socket_recvfull(ae-sd, head, AJP_HEADER_LEN); if (rc 0) { -jk_log(l, JK_LOG_ERROR, - ERROR: can't receive the response message from tomcat, - network problems or tomcat is down (%s), err=%d, - jk_dump_hinfo(ae-worker-worker_inet_addr, buf), rc); -JK_TRACE_EXIT(l); +if (rc == JK_SOCKET_EOF) { +jk_log(l, JK_LOG_INFO, + Tomcat has forced a connection close for socket %d, + ae-sd); +JK_TRACE_EXIT(l); +} +else { +jk_log(l, JK_LOG_ERROR, + Can't receive the response message from tomcat, + network problems or tomcat is down (%s), err=%d, + jk_dump_hinfo(ae-worker-worker_inet_addr, buf), rc); + JK_TRACE_EXIT(l); +} return JK_FALSE; } ae-endpoint.rd += rc; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/05/06 06:59:34 Modified:jk/native/common jk_ajp_common.c Log: No need to check the proto because it can only be ajp13 or ajp14, when the worker is created. Revision ChangesPath 1.109 +1 -7 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.108 retrieving revision 1.109 diff -u -r1.108 -r1.109 --- jk_ajp_common.c 6 May 2005 13:49:32 - 1.108 +++ jk_ajp_common.c 6 May 2005 13:59:34 - 1.109 @@ -950,12 +950,6 @@ char buf[32]; JK_TRACE_ENTER(l); -if ((ae-proto != AJP13_PROTO) (ae-proto != AJP14_PROTO)) { -jk_log(l, JK_LOG_ERROR, - Can't handle unknown protocol %d, ae-proto); -JK_TRACE_EXIT(l); -return JK_FALSE; -} rc = jk_tcp_socket_recvfull(ae-sd, head, AJP_HEADER_LEN); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/04/26 23:38:59 Modified:jk/native/common jk_ajp_common.c Log: Added missing ACL method. Revision ChangesPath 1.103 +5 -1 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.102 retrieving revision 1.103 diff -u -r1.102 -r1.103 --- jk_ajp_common.c 24 Apr 2005 09:54:47 - 1.102 +++ jk_ajp_common.c 27 Apr 2005 06:38:59 - 1.103 @@ -100,6 +100,10 @@ case 3: switch (method[0]) { +case 'A': +return (method[1] == 'C' + method[2] == 'L' +? SC_M_ACL : UNKNOWN_METHOD); case 'P': return (method[1] == 'U' method[2] == 'T' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/04/27 00:07:08 Modified:jk/native/common jk_ajp_common.c Log: Be more verbose logging socket maintain. Revision ChangesPath 1.104 +12 -4 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.103 retrieving revision 1.104 diff -u -r1.103 -r1.104 --- jk_ajp_common.c 27 Apr 2005 06:38:59 - 1.103 +++ jk_ajp_common.c 27 Apr 2005 07:07:08 - 1.104 @@ -2150,7 +2150,7 @@ } JK_ENTER_CS(aw-cs, rc); if (rc) { -unsigned int i; +unsigned int i, n = 0; /* Handle worker cache and recycle timeouts */ for (i = 0; i aw-ep_cache_sz; i++) { /* Skip the closed sockets */ @@ -2158,15 +2158,23 @@ int elapsed = (int)difftime(now, aw-ep_cache[i]-last_access); if (((aw-cache_timeout 0) (elapsed aw-cache_timeout)) || ((aw-recycle_timeout 0) (elapsed aw-recycle_timeout))) { +time_t rt = 0; +n++; +if (JK_IS_DEBUG_LEVEL(l)) +rt = time(NULL); aw-ep_cache[i]-reuse = JK_FALSE; ajp_reset_endpoint(aw-ep_cache[i], l); if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, -cleaning cache slot=%d elapsed %u, -i, elapsed); +cleaning cache slot=%d elapsed %u in %d, +i, elapsed, (int)(difftime(time(NULL), rt))); } } } +if (JK_IS_DEBUG_LEVEL(l)) +jk_log(l, JK_LOG_DEBUG, +recycled %u sockets in %d seconds, +n, (int)(difftime(time(NULL), now))); JK_LEAVE_CS(aw-cs, rc); JK_TRACE_EXIT(l); return JK_TRUE; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/04/27 00:17:46 Modified:jk/native/common jk_ajp_common.c Log: Add SEARCH method too. Also missing like ACL. Revision ChangesPath 1.105 +4 -1 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.104 retrieving revision 1.105 diff -u -r1.104 -r1.105 --- jk_ajp_common.c 27 Apr 2005 07:07:08 - 1.104 +++ jk_ajp_common.c 27 Apr 2005 07:17:46 - 1.105 @@ -185,6 +185,9 @@ case 'R': return (memcmp(method, REPORT, 6) == 0 ? SC_M_REPORT : UNKNOWN_METHOD); +case 'S': +return (memcmp(method, SEARCH, 6) == 0 +? SC_M_SEARCH : UNKNOWN_METHOD); case 'D': return (memcmp(method, DELETE, 6) == 0 ? SC_M_DELETE : UNKNOWN_METHOD); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h
mturk 2005/04/27 07:12:48 Modified:jk/native/common jk_ajp_common.c jk_ajp_common.h Log: Also set the SC_A_STORED_METHOD when passing arbitrary request methods as attributes. Revision ChangesPath 1.107 +3 -2 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.106 retrieving revision 1.107 diff -u -r1.106 -r1.107 --- jk_ajp_common.c 27 Apr 2005 14:06:17 - 1.106 +++ jk_ajp_common.c 27 Apr 2005 14:12:48 - 1.107 @@ -532,7 +532,8 @@ if (method == SC_M_JK_STORED) { if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, unknown method %s, s-method); -if (jk_b_append_string(msg, s-method)) { +if (jk_b_append_byte(msg, SC_A_STORED_METHOD) || +jk_b_append_string(msg, s-method)) { jk_log(l, JK_LOG_ERROR, failed appending the request method); JK_TRACE_EXIT(l); 1.34 +2 -1 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.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- jk_ajp_common.h 27 Apr 2005 14:06:17 - 1.33 +++ jk_ajp_common.h 27 Apr 2005 14:12:48 - 1.34 @@ -49,6 +49,7 @@ #define SC_A_REQ_ATTRIBUTE (unsigned char)10 #define SC_A_SSL_KEY_SIZE (unsigned char)11 /* only in if JkOptions +ForwardKeySize */ #define SC_A_SECRET (unsigned char)12 +#define SC_A_STORED_METHOD (unsigned char)13 #define SC_A_ARE_DONE (unsigned char)0xFF /* - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_global.h jk_lb_worker.c
mturk 2005/04/21 04:18:44 Modified:jk/native/common jk_ajp_common.c jk_global.h jk_lb_worker.c Log: Make sure the returned status codes are the same for ajp and lb workers. Status 503 if connection to tomcat fails. Status 502 is returned if tomcat faild in the middle of request. Status 400 is returned if client made faulty request Status 413 is returned if the headers are too large. Status 500 is returned in case of any other error. Revision ChangesPath 1.97 +7 -6 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.96 retrieving revision 1.97 diff -u -r1.96 -r1.97 --- jk_ajp_common.c 11 Apr 2005 06:51:36 - 1.96 +++ jk_ajp_common.c 21 Apr 2005 11:18:44 - 1.97 @@ -1605,12 +1605,12 @@ JK_TRACE_ENTER(l); +if (is_error) +*is_error = JK_HTTP_SERVER_ERROR; + if (e e-endpoint_private s is_error) { ajp_endpoint_t *p = e-endpoint_private; op-request = jk_b_new((p-pool)); -/* Presume there will be no errors */ -*is_error = JK_HTTP_OK; - jk_b_set_buffer_size(op-request, DEF_BUFFER_SZ); jk_b_reset(op-request); @@ -1674,6 +1674,7 @@ err = ajp_get_reply(e, s, l, p, op); if (err == JK_TRUE) { +*is_error = JK_HTTP_OK; /* Done with the request */ JK_TRACE_EXIT(l); return JK_TRUE; @@ -1686,7 +1687,7 @@ * operation is no more recoverable */ if (!op-recoverable) { -*is_error = JK_HTTP_SERVER_ERROR; +*is_error = JK_HTTP_BAD_GATEWAY; jk_log(l, JK_LOG_ERROR, receiving reply from tomcat failed without recovery in send loop %d, i); @@ -1728,7 +1729,7 @@ /* Get another connection from the pool and try again */ ajp_next_connection(p, l); } - +*is_error = JK_HTTP_SERVER_BUSY; /* Log the error only once per failed request. */ jk_log(l, JK_LOG_ERROR, Error connecting to tomcat. Tomcat is probably not started 1.47 +9 -6 jakarta-tomcat-connectors/jk/native/common/jk_global.h Index: jk_global.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_global.h,v retrieving revision 1.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- jk_global.h 26 Mar 2005 09:28:56 - 1.46 +++ jk_global.h 21 Apr 2005 11:18:44 - 1.47 @@ -174,11 +174,14 @@ /* HTTP Error codes */ -#define JK_HTTP_OK 200 -#define JK_HTTP_BAD_REQUEST 400 -#define JK_REQUEST_TOO_LARGE413 -#define JK_HTTP_SERVER_ERROR500 -#define JK_HTTP_SERVER_BUSY 503 +#define JK_HTTP_OK 200 +#define JK_HTTP_BAD_REQUEST 400 +#define JK_REQUEST_TOO_LARGE 413 +#define JK_HTTP_SERVER_ERROR 500 +#define JK_HTTP_NOT_IMPLEMENTED 501 +#define JK_HTTP_BAD_GATEWAY 502 +#define JK_HTTP_SERVER_BUSY 503 +#define JK_HTTP_GATEWAY_TIME_OUT 504 /* 1.77 +3 -3 jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c Index: jk_lb_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c,v retrieving revision 1.76 retrieving revision 1.77 diff -u -r1.76 -r1.77 --- jk_lb_worker.c13 Apr 2005 12:40:03 - 1.76 +++ jk_lb_worker.c21 Apr 2005 11:18:44 - 1.77 @@ -668,7 +668,7 @@ jk_log(l, JK_LOG_ERROR, All tomcat instances failed, no more workers left); JK_TRACE_EXIT(l); -*is_error = JK_HTTP_SERVER_ERROR; +*is_error = JK_HTTP_SERVER_BUSY; return JK_FALSE; } --num_of_workers; @@ -677,7 +677,7 @@ jk_log(l, JK_LOG_INFO, All tomcat instances are busy or in error state); JK_TRACE_EXIT(l); -/* Set error to Server busy */ +/* Set error to Timeout */ *is_error = JK_HTTP_SERVER_BUSY; return JK_FALSE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c jk_connect.h
mturk 2005/04/21 04:36:29 Modified:jk/native/common jk_ajp_common.c jk_connect.c jk_connect.h Log: Remove unused timeout parameter for testing if socket is connected. Revision ChangesPath 1.98 +3 -3 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.97 retrieving revision 1.98 diff -u -r1.97 -r1.98 --- jk_ajp_common.c 21 Apr 2005 11:18:44 - 1.97 +++ jk_ajp_common.c 21 Apr 2005 11:36:29 - 1.98 @@ -847,7 +847,7 @@ if (ae-worker-cache_timeout 0 || ae-worker-recycle_timeout 0) ae-last_access = time(NULL); if (ae-worker-socket_timeout 0) { -if (!jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) { +if (!jk_is_socket_connected(ae-sd)) { jk_log(l, JK_LOG_INFO, Socket is not connected any more (errno=%d), errno); jk_close_socket(ae-sd); @@ -1160,7 +1160,7 @@ while ((ae-sd 0)) { err = 0; if (ae-worker-socket_timeout) { -if (!jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) { +if (!jk_is_socket_connected(ae-sd)) { jk_log(l, JK_LOG_INFO, Socket is not connected any more (errno=%d), errno); jk_close_socket(ae-sd); 1.53 +2 -8 jakarta-tomcat-connectors/jk/native/common/jk_connect.c Index: jk_connect.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.c,v retrieving revision 1.52 retrieving revision 1.53 diff -u -r1.52 -r1.53 --- jk_connect.c 13 Apr 2005 11:12:38 - 1.52 +++ jk_connect.c 21 Apr 2005 11:36:29 - 1.53 @@ -548,18 +548,12 @@ return buf; } -int jk_is_socket_connected(int sd, int timeout) +int jk_is_socket_connected(int sd) { fd_set fd; struct timeval tv; int rc; -/* socket_timeout is unused in select implemention - * If we change this to non blocking read, then we - * will use the timeout parameter. - */ - timeout = 0; - FD_ZERO(fd); FD_SET(sd, fd); 1.14 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_connect.h Index: jk_connect.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.h,v retrieving revision 1.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- jk_connect.h 17 Feb 2005 07:09:27 - 1.13 +++ jk_connect.h 21 Apr 2005 11:36:29 - 1.14 @@ -51,7 +51,7 @@ char *jk_dump_hinfo(struct sockaddr_in *saddr, char *buf); -int jk_is_socket_connected(int sd, int timeout); +int jk_is_socket_connected(int sd); #ifdef __cplusplus } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/04/21 04:41:06 Modified:jk/native/common jk_ajp_common.c Log: Fix bug in check next connection loop, by resetting test value to 0 for each socket. Revision ChangesPath 1.99 +3 -2 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.98 retrieving revision 1.99 diff -u -r1.98 -r1.99 --- jk_ajp_common.c 21 Apr 2005 11:36:29 - 1.98 +++ jk_ajp_common.c 21 Apr 2005 11:41:06 - 1.99 @@ -1148,7 +1148,7 @@ ajp_endpoint_t * ae, ajp_operation_t * op) { int err = 0; -int postlen, rc = 0; +int postlen; JK_TRACE_ENTER(l); /* Up to now, we can recover */ @@ -1158,6 +1158,7 @@ * First try to reuse open connections... */ while ((ae-sd 0)) { +int rc = 0; err = 0; if (ae-worker-socket_timeout) { if (!jk_is_socket_connected(ae-sd)) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/04/21 04:51:07 Modified:jk/native/common jk_ajp_common.c Log: Close the socket only if the lock can be obtained. Revision ChangesPath 1.100 +5 -4 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.99 retrieving revision 1.100 diff -u -r1.99 -r1.100 --- jk_ajp_common.c 21 Apr 2005 11:41:06 - 1.99 +++ jk_ajp_common.c 21 Apr 2005 11:51:06 - 1.100 @@ -729,19 +729,20 @@ JK_ENTER_CS(aw-cs, rc); if (rc) { unsigned int i; -/* Close existing endpoint socket */ +/* Mark existing endpoint socket as closed */ ae-sd = -1; for (i = 0; i aw-ep_cache_sz; i++) { /* Find cache slot with usable socket */ -if (aw-ep_cache[i] aw-ep_cache[i]-sd 0) { +if (aw-ep_cache[i] aw-ep_cache[i]-sd != -1) { ae-sd = aw-ep_cache[i]-sd; - aw-ep_cache[i]-sd = -1; +aw-ep_cache[i]-sd = -1; break; } } JK_LEAVE_CS(aw-cs, rc); +/* Close previous socket */ +jk_close_socket(sock); } -jk_close_socket(sock); } /* - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_msg_buff.c jk_msg_buff.h
mturk 2005/04/21 05:04:18 Modified:jk/native/common jk_ajp_common.c jk_msg_buff.c jk_msg_buff.h Log: Make jk_msg_buf_t structure public to skip the need for calling functions for accessing structure elements. Revision ChangesPath 1.101 +16 -16 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.100 retrieving revision 1.101 diff -u -r1.100 -r1.101 --- jk_ajp_common.c 21 Apr 2005 11:51:06 - 1.100 +++ jk_ajp_common.c 21 Apr 2005 12:04:18 - 1.101 @@ -621,7 +621,7 @@ if (d-header_names d-header_values) { unsigned i; for (i = 0; i d-num_headers; i++) { -unsigned short name = jk_b_pget_int(msg, jk_b_get_pos(msg)); +unsigned short name = jk_b_pget_int(msg, msg-pos); if ((name 0XFF00) == 0XA000) { jk_b_get_int(msg); @@ -910,9 +910,9 @@ return JK_FATAL_ERROR; } -if ((rc = jk_tcp_socket_sendfull(ae-sd, jk_b_get_buff(msg), - jk_b_get_len(msg))) 0) { -ae-endpoint.wr += jk_b_get_len(msg); +if ((rc = jk_tcp_socket_sendfull(ae-sd, msg-buf, + msg-len)) 0) { +ae-endpoint.wr += msg-len; JK_TRACE_EXIT(l); return JK_TRUE; } @@ -997,19 +997,19 @@ msglen = ((head[2] 0xff) 8); msglen += (head[3] 0xFF); -if (msglen jk_b_get_size(msg)) { +if (msglen msg-maxlen) { jk_log(l, JK_LOG_ERROR, wrong message size %d %d from %s, - msglen, jk_b_get_size(msg), + msglen, msg-maxlen, jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); JK_TRACE_EXIT(l); return JK_FALSE; } -jk_b_set_len(msg, msglen); -jk_b_set_pos(msg, 0); +msg-len = msglen; +msg-pos = 0; -rc = jk_tcp_socket_recvfull(ae-sd, jk_b_get_buff(msg), msglen); +rc = jk_tcp_socket_recvfull(ae-sd, msg-buf, msglen); if (rc 0) { jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, @@ -1089,7 +1089,7 @@ jk_ws_service_t *r, jk_msg_buf_t *msg, int len, jk_logger_t *l) { -unsigned char *read_buf = jk_b_get_buff(msg); +unsigned char *read_buf = msg-buf; JK_TRACE_ENTER(l); jk_b_reset(msg); @@ -1125,7 +1125,7 @@ } } -jk_b_set_len(msg, jk_b_get_len(msg) + len); +msg-len += len; JK_TRACE_EXIT(l); return len; @@ -1241,7 +1241,7 @@ if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, request body to send %d - request body to resend %d, - ae-left_bytes_to_send, jk_b_get_len(op-reply) - AJP_HEADER_LEN); + ae-left_bytes_to_send, op-reply-len - AJP_HEADER_LEN); /* * POST recovery job is done here and will work when data to @@ -1252,7 +1252,7 @@ /* Did we have something to resend (ie the op-post has been feeded previously */ -postlen = jk_b_get_len(op-post); +postlen = op-post-len; if (postlen AJP_HEADER_LEN) { if (ajp_connection_tcp_send_message(ae, op-post, l) != JK_TRUE) { jk_log(l, JK_LOG_ERROR, Error resending request body (%d), @@ -1268,7 +1268,7 @@ } else if (s-reco_status == RECO_FILLED) { /* Recovery in LB MODE */ -postlen = jk_b_get_len(s-reco_buf); +postlen = s-reco_buf-len; if (postlen AJP_HEADER_LEN) { if (ajp_connection_tcp_send_message(ae, s-reco_buf, l) != JK_TRUE) { @@ -1361,7 +1361,7 @@ case JK_AJP13_SEND_BODY_CHUNK: { unsigned len = (unsigned)jk_b_get_int(msg); -if (!r-write(r, jk_b_get_buff(msg) + jk_b_get_pos(msg), len)) { +if (!r-write(r, msg-buf + msg-pos, len)) { jk_log(l, JK_LOG_INFO, Connection aborted or network problems); JK_TRACE_EXIT(l); 1.29 +1 -41 jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c Index: jk_msg_buff.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -r1.28 -r1.29 --- jk_msg_buff.c 16 Feb 2005 11:42:46 - 1.28 +++ jk_msg_buff.c 21 Apr 2005 12:04:18 - 1.29 @@ -29,16 +29,6 @@ #include jk_msg_buff.h #include
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_status.c
mturk 2005/04/10 23:51:36 Modified:jk/native/common jk_ajp_common.c jk_status.c Log: Fix compile time warnings about missing declarations. Revision ChangesPath 1.96 +7 -7 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.95 retrieving revision 1.96 diff -u -r1.95 -r1.96 --- jk_ajp_common.c 26 Mar 2005 09:28:56 - 1.95 +++ jk_ajp_common.c 11 Apr 2005 06:51:36 - 1.96 @@ -36,7 +36,7 @@ #endif /* Sleep for 100ms */ -static void jk_sleep_def() +static void jk_sleep_def(void) { #ifdef OS2 DosSleep(100); @@ -747,7 +747,7 @@ /* * Wait input event on ajp_endpoint for timeout ms */ -int ajp_is_input_event(ajp_endpoint_t * ae, int timeout, jk_logger_t *l) +static int ajp_is_input_event(ajp_endpoint_t * ae, int timeout, jk_logger_t *l) { fd_set rset; fd_set eset; @@ -777,7 +777,7 @@ /* * Handle the CPING/CPONG initial query */ -int ajp_handle_cping_cpong(ajp_endpoint_t * ae, int timeout, jk_logger_t *l) +static int ajp_handle_cping_cpong(ajp_endpoint_t * ae, int timeout, jk_logger_t *l) { int cmd; jk_msg_buf_t *msg; @@ -1595,9 +1595,9 @@ * We serve here the request, using AJP13/AJP14 (e-proto) * */ -int JK_METHOD ajp_service(jk_endpoint_t *e, - jk_ws_service_t *s, - jk_logger_t *l, int *is_error) +static int JK_METHOD ajp_service(jk_endpoint_t *e, + jk_ws_service_t *s, + jk_logger_t *l, int *is_error) { int i, err; ajp_operation_t oper; 1.36 +3 -3 jakarta-tomcat-connectors/jk/native/common/jk_status.c Index: jk_status.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_status.c,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- jk_status.c 26 Mar 2005 14:20:48 - 1.35 +++ jk_status.c 11 Apr 2005 06:51:36 - 1.36 @@ -129,7 +129,7 @@ } #endif -int jk_printf(jk_ws_service_t *s, const char *fmt, ...) +static int jk_printf(jk_ws_service_t *s, const char *fmt, ...) { int rc = 0; va_list args; @@ -166,7 +166,7 @@ } /* Actually APR's apr_strfsize */ -char *status_strfsize(size_t size, char *buf) +static char *status_strfsize(size_t size, char *buf) { const char ord[] = KMGTPE; const char *o = ord; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/03/26 00:42:14 Modified:jk/native/common jk_ajp_common.c Log: In case there is an error in marshaling initial data return that as client error not as server error. Revision ChangesPath 1.94 +38 -19 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.93 retrieving revision 1.94 diff -u -r1.93 -r1.94 --- jk_ajp_common.c 22 Feb 2005 10:27:37 - 1.93 +++ jk_ajp_common.c 26 Mar 2005 08:42:14 - 1.94 @@ -906,7 +906,7 @@ jk_log(l, JK_LOG_ERROR, unknown protocol %d, supported are AJP13/AJP14, ae-proto); JK_TRACE_EXIT(l); -return JK_FALSE; +return JK_FATAL_ERROR; } if ((rc = jk_tcp_socket_sendfull(ae-sd, jk_b_get_buff(msg), @@ -1103,7 +1103,7 @@ if ((len = ajp_read_fully_from_server(r, l, read_buf, len)) 0) { jk_log(l, JK_LOG_INFO, - ERROR: receiving data from client failed. + Error receiving data from client failed. Connection aborted or network problems); JK_TRACE_EXIT(l); return JK_CLIENT_ERROR; @@ -1148,7 +1148,7 @@ ajp_endpoint_t * ae, ajp_operation_t * op) { int err = 0; -int postlen; +int postlen, rc = 0; JK_TRACE_ENTER(l); /* Up to now, we can recover */ @@ -1182,10 +1182,16 @@ * connection and try again. If we are succesful, break out of this * loop. */ if (err || -(ajp_connection_tcp_send_message(ae, op-request, l) == JK_FALSE)) { +((rc = ajp_connection_tcp_send_message(ae, op-request, l)) != JK_TRUE)) { jk_log(l, JK_LOG_INFO, Error sending request. Will try another pooled connection); -ajp_next_connection(ae, l); +if (rc != JK_FATAL_ERROR) +ajp_next_connection(ae, l); +else { +op-recoverable = JK_FALSE; +JK_TRACE_EXIT(l); +return JK_FALSE; +} } else break; @@ -1210,7 +1216,7 @@ * After we are connected, each error that we are going to * have is probably unrecoverable */ -if (ajp_connection_tcp_send_message(ae, op-request, l) == JK_FALSE) { +if (ajp_connection_tcp_send_message(ae, op-request, l) != JK_TRUE) { jk_log(l, JK_LOG_INFO, Error sending request on a fresh connection); JK_TRACE_EXIT(l); @@ -1246,7 +1252,7 @@ postlen = jk_b_get_len(op-post); if (postlen AJP_HEADER_LEN) { -if (ajp_connection_tcp_send_message(ae, op-post, l) == JK_FALSE) { +if (ajp_connection_tcp_send_message(ae, op-post, l) != JK_TRUE) { jk_log(l, JK_LOG_ERROR, Error resending request body (%d), postlen); JK_TRACE_EXIT(l); @@ -1263,7 +1269,7 @@ postlen = jk_b_get_len(s-reco_buf); if (postlen AJP_HEADER_LEN) { -if (ajp_connection_tcp_send_message(ae, s-reco_buf, l) == JK_FALSE) { +if (ajp_connection_tcp_send_message(ae, s-reco_buf, l) != JK_TRUE) { jk_log(l, JK_LOG_ERROR, Error resending request body (lb mode) (%d), postlen); @@ -1300,7 +1306,7 @@ /* the browser stop sending data, no need to recover */ op-recoverable = JK_FALSE; JK_TRACE_EXIT(l); -return JK_CLIENT_ERROR; +return len; } /* If a RECOVERY buffer is available in LB mode, fill it */ @@ -1310,7 +1316,7 @@ } s-content_read = len; -if (ajp_connection_tcp_send_message(ae, op-post, l) == JK_FALSE) { +if (ajp_connection_tcp_send_message(ae, op-post, l) != JK_TRUE) { jk_log(l, JK_LOG_ERROR, Error sending request body); JK_TRACE_EXIT(l); return JK_FALSE; @@ -1621,7 +1627,6 @@ p-left_bytes_to_send = s-content_length; p-reuse = JK_FALSE; -*is_error = 0; s-secret = p-worker-secret; @@ -1629,9 +1634,12 @@ * We get here initial request (in reqmsg) */ if (!ajp_marshal_into_msgb(op-request, s, l, p)) { -*is_error = JK_HTTP_SERVER_ERROR; +*is_error = JK_HTTP_BAD_REQUEST; +jk_log(l, JK_LOG_INFO, +Creating AJP message failed,
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/22 01:58:38 Modified:jk/native/common jk_ajp_common.c Log: On END_RESPONSE mark service as readed. Revision ChangesPath 1.92 +4 -1 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.91 retrieving revision 1.92 diff -u -r1.91 -r1.92 --- jk_ajp_common.c 19 Feb 2005 09:13:35 - 1.91 +++ jk_ajp_common.c 22 Feb 2005 09:58:38 - 1.92 @@ -1527,6 +1527,9 @@ /* no more data to be sent, fine we have finish here */ if (JK_AJP13_END_RESPONSE == rc) { +/* XXX: Set all readed */ +s-content_read = s-content_length; +s-no_more_chunks = 1; JK_TRACE_EXIT(l); return JK_TRUE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/22 02:27:38 Modified:jk/native/common jk_ajp_common.c Log: Revert the latest patch. No help on close_wait. Revision ChangesPath 1.93 +1 -4 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.92 retrieving revision 1.93 diff -u -r1.92 -r1.93 --- jk_ajp_common.c 22 Feb 2005 09:58:38 - 1.92 +++ jk_ajp_common.c 22 Feb 2005 10:27:37 - 1.93 @@ -1527,9 +1527,6 @@ /* no more data to be sent, fine we have finish here */ if (JK_AJP13_END_RESPONSE == rc) { -/* XXX: Set all readed */ -s-content_read = s-content_length; -s-no_more_chunks = 1; JK_TRACE_EXIT(l); return JK_TRUE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
RE: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
(B (B (BCharlie Zhang (BProject Manager (BInfosys Technologies Shanghai Company Ltd. (B[EMAIL PROTECTED] (B50271588 * 3120 / 13601627903 (B (B-Original Message- (BFrom: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED] (BSent: 2005$BG/(J2$B7n(J22$BF|(J 18:28 (BTo: [EMAIL PROTECTED] (BSubject: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c (B (Bmturk 2005/02/22 02:27:38 (B (B Modified:jk/native/common jk_ajp_common.c (B Log: (B Revert the latest patch. No help on close_wait. (B (B Revision ChangesPath (B 1.93 +1 -4 (Bjakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c (B (B Index: jk_ajp_common.c (B === (B RCS file: (B/home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c,v (B retrieving revision 1.92 (B retrieving revision 1.93 (B diff -u -r1.92 -r1.93 (B --- jk_ajp_common.c 22 Feb 2005 09:58:38 - 1.92 (B +++ jk_ajp_common.c 22 Feb 2005 10:27:37 - 1.93 (B @@ -1527,9 +1527,6 @@ (B (B /* no more data to be sent, fine we have finish here */ (B if (JK_AJP13_END_RESPONSE == rc) { (B -/* XXX: Set all readed */ (B -s-content_read = s-content_length; (B -s-no_more_chunks = 1; (B JK_TRACE_EXIT(l); (B return JK_TRUE; (B } (B (B (B (B (B- (BTo unsubscribe, e-mail: [EMAIL PROTECTED] (BFor additional commands, e-mail: [EMAIL PROTECTED] (B (B (B- (BTo unsubscribe, e-mail: [EMAIL PROTECTED] (BFor additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
mturk 2005/02/19 01:13:35 Modified:jk/native/common jk_ajp_common.c jk_connect.c Log: Use alternative is_socket_connected implementation using select with 1 microsecond timeout. It should be both faster and usable on netware too. Revision ChangesPath 1.91 +7 -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.90 retrieving revision 1.91 diff -u -r1.90 -r1.91 --- jk_ajp_common.c 18 Feb 2005 08:27:21 - 1.90 +++ jk_ajp_common.c 19 Feb 2005 09:13:35 - 1.91 @@ -847,10 +847,9 @@ if (ae-worker-cache_timeout 0 || ae-worker-recycle_timeout 0) ae-last_access = time(NULL); if (ae-worker-socket_timeout 0) { -int rc = 0; -if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { -jk_log(l, JK_LOG_INFO, -Socket is not connected any more (status=%d), rc); +if (!jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) { +jk_log(l, JK_LOG_INFO, + Socket is not connected any more (errno=%d), errno); jk_close_socket(ae-sd); ae-sd = -1; JK_TRACE_EXIT(l); @@ -1161,10 +1160,9 @@ while ((ae-sd 0)) { err = 0; if (ae-worker-socket_timeout) { -int rc = 0; -if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { -jk_log(l, JK_LOG_INFO, - Socket is not connected any more (status=%d), rc); +if (!jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) { +jk_log(l, JK_LOG_INFO, + Socket is not connected any more (errno=%d), errno); jk_close_socket(ae-sd); ae-sd = -1; err++; 1.43 +48 -2 jakarta-tomcat-connectors/jk/native/common/jk_connect.c Index: jk_connect.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- jk_connect.c 17 Feb 2005 08:26:42 - 1.42 +++ jk_connect.c 19 Feb 2005 09:13:35 - 1.43 @@ -194,18 +194,36 @@ sock_buf); } -#ifdef WIN32 if (timeout 0) { +#ifdef WIN32 timeout = timeout * 1000; setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *) timeout, sizeof(int)); setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (char *) timeout, sizeof(int)); +#else +/* TODO: How to set the timeout for other platforms? */ +#endif if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, timeout %d set for socket=%d, timeout, sock); } +#ifdef SO_NOSIGPIPE +/* The preferred method on Mac OS X (10.2 and later) to prevent SIGPIPEs when + * sending data to a dead peer. Possibly also existing and in use on other BSD + * systems? +*/ +set = 1; +if (setsockopt(sd, SOL_SOCKET, SO_NOSIGPIPE, (const char *)set, + sizeof(int))) { +JK_GET_SOCKET_ERRNO(); +jk_log(l, JK_LOG_ERROR, +failed setting SO_NOSIGPIPE with errno=%d, errno); +jk_close_socket(sock); +JK_TRACE_EXIT(l); +return -1; +} #endif /* Tries to connect to Tomcat (continues trying while error is EINTR) */ do { @@ -405,6 +423,32 @@ return 0; } +#if 1 +int jk_is_socket_connected(int sd, int timeout) +{ +fd_set fd; +struct timeval tv; + +FD_ZERO(fd); +FD_SET(sd, fd); + +/* Wait one microsecond */ +tv.tv_sec = 0; +tv.tv_usec = 1; + +/* If we get a timeout, then we are still connected */ +if (select(1, fd, NULL, NULL, tv) == 0) +return 1; +else { +#if defined(WIN32) || (defined(NETWARE) defined(__NOVELL_LIBC__)) +errno = WSAGetLastError() - WSABASEERR; +#endif +return 0; +} +} + +#else + #if defined(WIN32) || (defined(NETWARE) defined(__NOVELL_LIBC__)) #define EWOULDBLOCK (WSAEWOULDBLOCK - WSABASEERR) #endif @@ -434,3 +478,5 @@ else return rc; } + +#endif - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
Greetings, Will see... :-) N. [EMAIL PROTECTED] wrote: mturk 2005/02/19 01:13:35 Modified:jk/native/common jk_ajp_common.c jk_connect.c Log: Use alternative is_socket_connected implementation using select with 1 microsecond timeout. It should be both faster and usable on netware too. Revision ChangesPath 1.91 +7 -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.90 retrieving revision 1.91 diff -u -r1.90 -r1.91 --- jk_ajp_common.c 18 Feb 2005 08:27:21 - 1.90 +++ jk_ajp_common.c 19 Feb 2005 09:13:35 - 1.91 @@ -847,10 +847,9 @@ if (ae-worker-cache_timeout 0 || ae-worker-recycle_timeout 0) ae-last_access = time(NULL); if (ae-worker-socket_timeout 0) { -int rc = 0; -if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { -jk_log(l, JK_LOG_INFO, -Socket is not connected any more (status=%d), rc); +if (!jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) { +jk_log(l, JK_LOG_INFO, + Socket is not connected any more (errno=%d), errno); jk_close_socket(ae-sd); ae-sd = -1; JK_TRACE_EXIT(l); @@ -1161,10 +1160,9 @@ while ((ae-sd 0)) { err = 0; if (ae-worker-socket_timeout) { -int rc = 0; -if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { -jk_log(l, JK_LOG_INFO, - Socket is not connected any more (status=%d), rc); +if (!jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) { +jk_log(l, JK_LOG_INFO, + Socket is not connected any more (errno=%d), errno); jk_close_socket(ae-sd); ae-sd = -1; err++; 1.43 +48 -2 jakarta-tomcat-connectors/jk/native/common/jk_connect.c Index: jk_connect.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.c,v retrieving revision 1.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- jk_connect.c 17 Feb 2005 08:26:42 - 1.42 +++ jk_connect.c 19 Feb 2005 09:13:35 - 1.43 @@ -194,18 +194,36 @@ sock_buf); } -#ifdef WIN32 if (timeout 0) { +#ifdef WIN32 timeout = timeout * 1000; setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char *) timeout, sizeof(int)); setsockopt(sock, SOL_SOCKET, SO_SNDTIMEO, (char *) timeout, sizeof(int)); +#else +/* TODO: How to set the timeout for other platforms? */ +#endif if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, timeout %d set for socket=%d, timeout, sock); } +#ifdef SO_NOSIGPIPE +/* The preferred method on Mac OS X (10.2 and later) to prevent SIGPIPEs when + * sending data to a dead peer. Possibly also existing and in use on other BSD + * systems? +*/ +set = 1; +if (setsockopt(sd, SOL_SOCKET, SO_NOSIGPIPE, (const char *)set, + sizeof(int))) { +JK_GET_SOCKET_ERRNO(); +jk_log(l, JK_LOG_ERROR, +failed setting SO_NOSIGPIPE with errno=%d, errno); +jk_close_socket(sock); +JK_TRACE_EXIT(l); +return -1; +} #endif /* Tries to connect to Tomcat (continues trying while error is EINTR) */ do { @@ -405,6 +423,32 @@ return 0; } +#if 1 +int jk_is_socket_connected(int sd, int timeout) +{ +fd_set fd; +struct timeval tv; + +FD_ZERO(fd); +FD_SET(sd, fd); + +/* Wait one microsecond */ +tv.tv_sec = 0; +tv.tv_usec = 1; + +/* If we get a timeout, then we are still connected */ +if (select(1, fd, NULL, NULL, tv) == 0) +return 1; +else { +#if defined(WIN32) || (defined(NETWARE) defined(__NOVELL_LIBC__)) +errno = WSAGetLastError() - WSABASEERR; +#endif +return 0; +} +} + +#else + #if defined(WIN32) || (defined(NETWARE) defined(__NOVELL_LIBC__)) #define EWOULDBLOCK (WSAEWOULDBLOCK - WSABASEERR) #endif @@ -434,3 +478,5 @@ else return rc; } + +#endif - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
Good evening, Can confirm a clean build for 2.1 and 2.0.53 Apache. Time is short now but will test them for basic ops in the morning. I assume these still need the socket_timeout at zero? Regards, Norm - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
NormW wrote: Good evening, Can confirm a clean build for 2.1 and 2.0.53 Apache. Time is short now but will test them for basic ops in the morning. I assume these still need the socket_timeout at zero? Well, new is_socket_connected implementation should be available for netware too (that was the purpose after all). Tell me if it works when you set the socket_timeout to a positive value. Regards, Mladen. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
Hi again... Mladen Turk wrote: NormW wrote: Good evening, Can confirm a clean build for 2.1 and 2.0.53 Apache. Time is short now but will test them for basic ops in the morning. I assume these still need the socket_timeout at zero? Well, new is_socket_connected implementation should be available for netware too (that was the purpose after all). Tell me if it works when you set the socket_timeout to a positive value. Okay - there is time enough to try in the morning and there will be a message shortly thereafter... Regards, Mladen. Norm - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
Good morning, AFAICT this is working fine with a socket timeout of 15. Neither /server-info/ or /status/ show the setting in use, but 15 is what's in the properties file and /server-info/ says that's the file in use. Regards, Norm Mladen Turk wrote: NormW wrote: Good evening, Can confirm a clean build for 2.1 and 2.0.53 Apache. Time is short now but will test them for basic ops in the morning. I assume these still need the socket_timeout at zero? Well, new is_socket_connected implementation should be available for netware too (that was the purpose after all). Tell me if it works when you set the socket_timeout to a positive value. Regards, Mladen. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] . - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/18 00:27:21 Modified:jk/native/common jk_ajp_common.c Log: Check if timeout has been set Revision ChangesPath 1.90 +2 -2 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.89 retrieving revision 1.90 diff -u -r1.89 -r1.90 --- jk_ajp_common.c 17 Feb 2005 13:29:19 - 1.89 +++ jk_ajp_common.c 18 Feb 2005 08:27:21 - 1.90 @@ -846,7 +846,7 @@ /* set last_access only if needed */ if (ae-worker-cache_timeout 0 || ae-worker-recycle_timeout 0) ae-last_access = time(NULL); -if (ae-worker-socket_timeout) { +if (ae-worker-socket_timeout 0) { int rc = 0; if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { jk_log(l, JK_LOG_INFO, - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/17 04:32:16 Modified:jk/native/common jk_ajp_common.c Log: Create separate function for creating the entire endpoint cache. It is just a way to make the code more readable. Revision ChangesPath 1.86 +62 -49 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.85 retrieving revision 1.86 diff -u -r1.85 -r1.86 --- jk_ajp_common.c 17 Feb 2005 07:14:19 - 1.85 +++ jk_ajp_common.c 17 Feb 2005 12:32:16 - 1.86 @@ -1780,21 +1780,45 @@ return JK_FALSE; } -static ajp_endpoint_t *ajp_create_endpoint(jk_worker_t *w, int proto, time_t now) +static int ajp_create_endpoint_cache(ajp_worker_t *p, int proto, jk_logger_t *l) { -ajp_endpoint_t *ae = (ajp_endpoint_t *)calloc(1, sizeof(ajp_endpoint_t)); -if (ae) { -ae-sd = -1; -ae-reuse = JK_FALSE; -ae-last_access = now; -jk_open_pool(ae-pool, ae-buf, sizeof(ae-buf)); -ae-worker = w-worker_private; -ae-endpoint.endpoint_private = ae; -ae-proto = proto; -ae-endpoint.service = ajp_service; -ae-endpoint.done = ajp_done; +unsigned int i; +time_t now = time(NULL); + +JK_TRACE_ENTER(l); +p-ep_cache = (ajp_endpoint_t **)calloc(1, sizeof(ajp_endpoint_t *) * +p-ep_cache_sz); +if (!p-ep_cache) { +JK_TRACE_EXIT(l); +return JK_FALSE; } -return ae; +if (JK_IS_DEBUG_LEVEL(l)) +jk_log(l, JK_LOG_DEBUG, +setting connection cache size to %d, +p-ep_cache_sz); +for (i = 0; i p-ep_cache_sz; i++) { +p-ep_cache[i] = (ajp_endpoint_t *)calloc(1, sizeof(ajp_endpoint_t)); +if (!p-ep_cache[i]) { +jk_log(l, JK_LOG_ERROR, +creating endpont cache slot %d errno=%d, +i, errno); +JK_TRACE_EXIT(l); +return JK_FALSE; +} +p-ep_cache[i]-sd = -1; +p-ep_cache[i]-reuse = JK_FALSE; +p-ep_cache[i]-last_access = now; +jk_open_pool((p-ep_cache[i]-pool), p-ep_cache[i]-buf, + sizeof(p-ep_cache[i]-buf)); +p-ep_cache[i]-worker = p; +p-ep_cache[i]-endpoint.endpoint_private = p-ep_cache[i]; +p-ep_cache[i]-proto = proto; +p-ep_cache[i]-endpoint.service = ajp_service; +p-ep_cache[i]-endpoint.done= ajp_done; +} + +JK_TRACE_EXIT(l); +return JK_TRUE; } int ajp_init(jk_worker_t *pThis, @@ -1903,40 +1927,16 @@ p-secret = jk_get_worker_secret(props, p-name); p-ep_mincache_sz = 1; -p-ep_cache = (ajp_endpoint_t **)calloc(1, sizeof(ajp_endpoint_t *) * -p-ep_cache_sz); -if (p-ep_cache) { -unsigned int i; -time_t now = time(NULL); - -if (JK_IS_DEBUG_LEVEL(l)) -jk_log(l, JK_LOG_DEBUG, -setting connection cache size to %d, -p-ep_cache_sz); -/* Initialize cache slots */ -for (i = 0; i p-ep_cache_sz; i++) { -p-ep_cache[i] = ajp_create_endpoint(pThis, proto, now); -if (!p-ep_cache[i]) { -jk_log(l, JK_LOG_ERROR, -creating endpont cache slot %d errno=%d, -i, errno); -JK_TRACE_EXIT(l); -return JK_FALSE; -} -jk_log(l, JK_LOG_DEBUG, -Initialized endpont cache slot %d %#lx:%#lx, -i, p-ep_cache[i], (p-ep_cache[i]-pool)); -} -JK_INIT_CS((p-cs), i); -if (i == JK_FALSE) { -jk_log(l, JK_LOG_ERROR, - creating thread lock errno=%d, - errno); -JK_TRACE_EXIT(l); -return JK_FALSE; -} +/* Initialize cache slots */ +JK_INIT_CS((p-cs), rc); +if (!rc) { +jk_log(l, JK_LOG_ERROR, + creating thread lock errno=%d, + errno); +JK_TRACE_EXIT(l); +return JK_FALSE; } -else { +if (!ajp_create_endpoint_cache(p, proto, l)) { jk_log(l, JK_LOG_ERROR, allocating ep_cache of size %d, p-ep_cache_sz); @@ -2046,8 +2046,12 @@ if
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/17 04:40:55 Modified:jk/native/common jk_ajp_common.c Log: Close socket outside critical section. Closing sockets can take a while, so no need to lock all the threads. Revision ChangesPath 1.87 +11 -4 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.86 retrieving revision 1.87 diff -u -r1.86 -r1.87 --- jk_ajp_common.c 17 Feb 2005 12:32:16 - 1.86 +++ jk_ajp_common.c 17 Feb 2005 12:40:54 - 1.87 @@ -724,12 +724,12 @@ { int rc; ajp_worker_t *aw = ae-worker; +int sock = ae-sd; JK_ENTER_CS(aw-cs, rc); if (rc) { unsigned int i; /* Close existing endpoint socket */ -jk_close_socket(ae-sd); ae-sd = -1; for (i = 0; i aw-ep_cache_sz; i++) { /* Find cache slot with usable socket */ @@ -741,6 +741,7 @@ } JK_LEAVE_CS(aw-cs, rc); } +jk_close_socket(sock); } /* @@ -2002,8 +2003,12 @@ JK_ENTER_CS(w-cs, rc); if (rc) { -int i; - +int i, sock = -1; + +if (p-sd 0 !p-reuse) { +sock = p-sd; +p-sd = -1; +} for(i = w-ep_cache_sz - 1; i = 0; i--) { if (w-ep_cache[i] == NULL) { w-ep_cache[i] = p; @@ -2013,6 +2018,8 @@ } *e = NULL; JK_LEAVE_CS(w-cs, rc); +if (sock = 0) +jk_close_socket(sock); if (i = 0) { if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/17 05:25:36 Modified:jk/native/common jk_ajp_common.c Log: Check if socket is connected before prepost cping/cpong. If the socket is not connected it will fail anyhow. Revision ChangesPath 1.88 +14 -10 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.87 retrieving revision 1.88 diff -u -r1.87 -r1.88 --- jk_ajp_common.c 17 Feb 2005 12:40:54 - 1.87 +++ jk_ajp_common.c 17 Feb 2005 13:25:36 - 1.88 @@ -843,8 +843,9 @@ connected sd = %d to %s, ae-sd, jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); -/* set last_access */ -ae-last_access = time(NULL); +/* set last_access only if needed */ +if (ae-worker-cache_timeout 0 || ae-worker-recycle_timeout 0) +ae-last_access = time(NULL); if (ae-worker-socket_timeout) { int rc = 0; if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { @@ -1159,13 +1160,7 @@ */ while ((ae-sd 0)) { err = 0; -/* handle cping/cpong before request if timeout is set */ -if (ae-worker-prepost_timeout != 0) { -if (ajp_handle_cping_cpong(ae, ae-worker-prepost_timeout, l) == -JK_FALSE) -err++; -} -else if (ae-worker-socket_timeout) { +if (ae-worker-socket_timeout) { int rc = 0; if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { jk_log(l, JK_LOG_INFO, @@ -1175,6 +1170,15 @@ err++; } } +else if (ae-worker-prepost_timeout != 0 !err) { +/* handle cping/cpong if prepost_timeout is set + * If the socket is disconnected no need to handle + * the cping/cpong + */ +if (ajp_handle_cping_cpong(ae, ae-worker-prepost_timeout, l) == +JK_FALSE) +err++; +} /* If we got an error or can't send data, then try to get a pooled * connection and try again. If we are succesful, break out of this - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/17 05:29:19 Modified:jk/native/common jk_ajp_common.c Log: Make sure that both network detection and cping/cpong can occur. Revision ChangesPath 1.89 +2 -2 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.88 retrieving revision 1.89 diff -u -r1.88 -r1.89 --- jk_ajp_common.c 17 Feb 2005 13:25:36 - 1.88 +++ jk_ajp_common.c 17 Feb 2005 13:29:19 - 1.89 @@ -1170,7 +1170,7 @@ err++; } } -else if (ae-worker-prepost_timeout != 0 !err) { +if (ae-worker-prepost_timeout != 0 !err) { /* handle cping/cpong if prepost_timeout is set * If the socket is disconnected no need to handle * the cping/cpong - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/16 00:19:46 Modified:jk/native/common jk_ajp_common.c Log: Rewrite endpoint cache. The endpoints are now created on init, and are present for worker liftime. This also truly limits the number of connections to Tomcat. Revision ChangesPath 1.79 +155 -154 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.78 retrieving revision 1.79 diff -u -r1.78 -r1.79 --- jk_ajp_common.c 15 Feb 2005 12:11:20 - 1.78 +++ jk_ajp_common.c 16 Feb 2005 08:19:46 - 1.79 @@ -682,8 +682,15 @@ * Reset the endpoint (clean buf) */ -static void ajp_reset_endpoint(ajp_endpoint_t * ae) +static void ajp_reset_endpoint(ajp_endpoint_t * ae, jk_logger_t *l) { +if (ae-sd 0 !ae-reuse) { +jk_close_socket(ae-sd); +if (JK_IS_DEBUG_LEVEL(l)) +jk_log(l, JK_LOG_DEBUG, + closed socket with sd = %d, ae-sd); +ae-sd = -1; +} jk_reset_pool((ae-pool)); } @@ -699,7 +706,8 @@ jk_close_socket(ae-sd); if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, - closed sd = %d, ae-sd); + closed socket with sd = %d, ae-sd); +ae-sd = -1; } jk_close_pool((ae-pool)); @@ -709,35 +717,31 @@ /* - * Try to reuse a previous connection + * Try another connection from cache */ -static void ajp_reuse_connection(ajp_endpoint_t * ae, jk_logger_t *l) +static void ajp_next_connection(ajp_endpoint_t **ae, jk_logger_t *l) { -ajp_worker_t *aw = ae-worker; +int rc; +ajp_worker_t *aw = (*ae)-worker; /* Close existing endpoint socket */ -jk_close_socket(ae-sd); -ae-sd = -1; - -if (aw-ep_cache_sz) { -int rc; -JK_ENTER_CS(aw-cs, rc); -if (rc) { -unsigned i; +jk_close_socket((*ae)-sd); +(*ae)-sd = -1; -for (i = 0; i aw-ep_cache_sz; i++) { -/* Find cache slot with usable socket */ -if (aw-ep_cache[i] aw-ep_cache[i]-sd 0) { -ae-sd = aw-ep_cache[i]-sd; -aw-ep_cache[i]-sd = -1; -ajp_close_endpoint(aw-ep_cache[i], l); -aw-ep_cache[i] = NULL; -break; -} +JK_ENTER_CS(aw-cs, rc); +if (rc) { +unsigned int i; +for (i = 0; i aw-ep_cache_sz; i++) { +/* Find cache slot with usable socket */ +if (aw-ep_cache[i] aw-ep_cache[i]-sd 0) { +ajp_endpoint_t *e = aw-ep_cache[i]; +aw-ep_cache[i] = *ae; +*ae = e; +break; } -JK_LEAVE_CS(aw-cs, rc); } +JK_LEAVE_CS(aw-cs, rc); } } @@ -1157,9 +1161,9 @@ * loop. */ if (err || (ajp_connection_tcp_send_message(ae, op-request, l) == JK_FALSE)) { -jk_log(l, JK_LOG_ERROR, - Error sending request try another pooled connection); -ajp_reuse_connection(ae, l); +jk_log(l, JK_LOG_INFO, + Error sending request. Will try another pooled connection); +ajp_next_connection(ae, l); } else break; @@ -1366,9 +1370,7 @@ /* * Strange protocol error. */ -if (JK_IS_DEBUG_LEVEL(l)) -jk_log(l, JK_LOG_DEBUG, Reuse: %d, ae-reuse); -ae-reuse = JK_FALSE; +jk_log(l, JK_LOG_INFO, Protocol error: Reuse is set to false); } /* Reuse in all cases */ ae-reuse = JK_TRUE; @@ -1630,7 +1632,6 @@ /* Up to there we can recover */ *is_recoverable_error = JK_TRUE; -op-recoverable = JK_TRUE; err = ajp_get_reply(e, s, l, p, op); if (err 0) { @@ -1662,7 +1663,7 @@ } } /* Get another connection from the pool */ -ajp_reuse_connection(p, l); +ajp_next_connection(p, l); if (err == JK_CLIENT_ERROR) { *is_recoverable_error = JK_FALSE; @@ -1752,12 +1753,28 @@ return JK_FALSE; } +static ajp_endpoint_t *ajp_create_endpoint(jk_worker_t *w, int proto, time_t now) +{ +ajp_endpoint_t *ae = (ajp_endpoint_t *)calloc(1, sizeof(ajp_endpoint_t)); +if (ae) { +ae-sd = -1; +ae-reuse = JK_FALSE; +
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/16 02:35:46 Modified:jk/native/common jk_ajp_common.c Log: Fix typo. Revision ChangesPath 1.80 +2 -2 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.79 retrieving revision 1.80 diff -u -r1.79 -r1.80 --- jk_ajp_common.c 16 Feb 2005 08:19:46 - 1.79 +++ jk_ajp_common.c 16 Feb 2005 10:35:46 - 1.80 @@ -1882,7 +1882,7 @@ /* Initialize cache slots */ for (i = 0; i p-ep_cache_sz; i++) { p-ep_cache[i] = ajp_create_endpoint(pThis, proto, now); -if (p-ep_cache[i]) { +if (!p-ep_cache[i]) { jk_log(l, JK_LOG_ERROR, Failed creating enpont cache slot %d errno=%d, i, errno); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/16 03:04:35 Modified:jk/native/common jk_ajp_common.c Log: Fix core dump if one of the endpoint cache entries can not be created by setting all pointer to zero before init. Revision ChangesPath 1.81 +3 -3 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.80 retrieving revision 1.81 diff -u -r1.80 -r1.81 --- jk_ajp_common.c 16 Feb 2005 10:35:46 - 1.80 +++ jk_ajp_common.c 16 Feb 2005 11:04:35 - 1.81 @@ -1869,8 +1869,8 @@ p-secret = jk_get_worker_secret(props, p-name); p-ep_mincache_sz = 1; -p-ep_cache = (ajp_endpoint_t **) malloc(sizeof(ajp_endpoint_t *) * - p-ep_cache_sz); +p-ep_cache = (ajp_endpoint_t **)calloc(1, sizeof(ajp_endpoint_t *) * +p-ep_cache_sz); if (p-ep_cache) { unsigned int i; time_t now = time(NULL); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/16 03:08:15 Modified:jk/native/common jk_ajp_common.c Log: Add some loging and fix few typos. No functional change. Revision ChangesPath 1.82 +6 -3 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.81 retrieving revision 1.82 diff -u -r1.81 -r1.82 --- jk_ajp_common.c 16 Feb 2005 11:04:35 - 1.81 +++ jk_ajp_common.c 16 Feb 2005 11:08:14 - 1.82 @@ -1884,7 +1884,7 @@ p-ep_cache[i] = ajp_create_endpoint(pThis, proto, now); if (!p-ep_cache[i]) { jk_log(l, JK_LOG_ERROR, -Failed creating enpont cache slot %d errno=%d, +creating endpont cache slot %d errno=%d, i, errno); JK_TRACE_EXIT(l); return JK_FALSE; @@ -1892,13 +1892,16 @@ } JK_INIT_CS((p-cs), i); if (i == JK_FALSE) { +jk_log(l, JK_LOG_ERROR, + creating thread lock errno=%d, + errno); JK_TRACE_EXIT(l); return JK_FALSE; } } else { jk_log(l, JK_LOG_ERROR, - Could not malloc ep_cache of size %d, + allocating ep_cache of size %d, p-ep_cache_sz); JK_TRACE_EXIT(l); return JK_FALSE; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/16 23:14:20 Modified:jk/native/common jk_ajp_common.c Log: Fix getting next socket from pool and add is_connected checking if socket_timeout is set. Also no need to reconect if is_connected or cping/cpong failed, because tomcat is either dead or disconnected. Use another worker instead, marking this one in error state. Revision ChangesPath 1.85 +82 -47 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.84 retrieving revision 1.85 diff -u -r1.84 -r1.85 --- jk_ajp_common.c 16 Feb 2005 15:28:28 - 1.84 +++ jk_ajp_common.c 17 Feb 2005 07:14:19 - 1.85 @@ -720,24 +720,22 @@ * Try another connection from cache */ -static void ajp_next_connection(ajp_endpoint_t **ae, jk_logger_t *l) +static void ajp_next_connection(ajp_endpoint_t *ae, jk_logger_t *l) { int rc; -ajp_worker_t *aw = (*ae)-worker; - -/* Close existing endpoint socket */ -jk_close_socket((*ae)-sd); -(*ae)-sd = -1; +ajp_worker_t *aw = ae-worker; JK_ENTER_CS(aw-cs, rc); if (rc) { unsigned int i; +/* Close existing endpoint socket */ +jk_close_socket(ae-sd); +ae-sd = -1; for (i = 0; i aw-ep_cache_sz; i++) { /* Find cache slot with usable socket */ if (aw-ep_cache[i] aw-ep_cache[i]-sd 0) { -ajp_endpoint_t *e = aw-ep_cache[i]; -aw-ep_cache[i] = *ae; -*ae = e; +ae-sd = aw-ep_cache[i]-sd; + aw-ep_cache[i]-sd = -1; break; } } @@ -837,7 +835,8 @@ for (attempt = 0; attempt ae-worker-connect_retry_attempts; attempt++) { ae-sd = jk_open_socket(ae-worker-worker_inet_addr, ae-worker-keepalive, -ae-worker-socket_timeout, l); +ae-worker-socket_timeout, +ae-worker-socket_buf, l); if (ae-sd = 0) { jk_log(l, JK_LOG_DEBUG, connected sd = %d to %s, @@ -845,6 +844,17 @@ /* set last_access */ ae-last_access = time(NULL); +if (ae-worker-socket_timeout) { +int rc = 0; +if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { +jk_log(l, JK_LOG_INFO, +Socket is not connected any more (status=%d), rc); +jk_close_socket(ae-sd); +ae-sd = -1; +JK_TRACE_EXIT(l); +return JK_FALSE; +} +} /* Check if we must execute a logon after the physical connect */ if (ae-worker-logon != NULL) { rc = ae-worker-logon(ae, l); @@ -1148,13 +1158,22 @@ */ while ((ae-sd 0)) { err = 0; - /* handle cping/cpong before request if timeout is set */ if (ae-worker-prepost_timeout != 0) { if (ajp_handle_cping_cpong(ae, ae-worker-prepost_timeout, l) == JK_FALSE) err++; } +else if (ae-worker-socket_timeout) { +int rc = 0; +if ((rc = jk_is_socket_connected(ae-sd, ae-worker-socket_timeout)) != 1) { +jk_log(l, JK_LOG_INFO, + Socket is not connected any more (status=%d), rc); +jk_close_socket(ae-sd); +ae-sd = -1; +err++; +} +} /* If we got an error or can't send data, then try to get a pooled * connection and try again. If we are succesful, break out of this @@ -1163,7 +1182,7 @@ (ajp_connection_tcp_send_message(ae, op-request, l) == JK_FALSE)) { jk_log(l, JK_LOG_INFO, Error sending request. Will try another pooled connection); -ajp_next_connection(ae, l); +ajp_next_connection(ae, l); } else break; @@ -1173,7 +1192,14 @@ * If we failed to reuse a connection, try to reconnect. */ if (ae-sd 0) { - + +if (err) { +/* XXX: If err is set, the tomcat is either dead or disconnected */ +jk_log(l, JK_LOG_INFO, + All endpoints are disconnected or dead); +JK_TRACE_EXIT(l); +return JK_FALSE; +} /* no need to handle cping/cpong here since it
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/15 04:11:20 Modified:jk/native/common jk_ajp_common.c Log: Fix request method processing for HEAD. Thanks to Ivo for finding the solution, and Pier to forward it. Revision ChangesPath 1.78 +2 -2 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.77 retrieving revision 1.78 diff -u -r1.77 -r1.78 --- jk_ajp_common.c 14 Feb 2005 18:07:00 - 1.77 +++ jk_ajp_common.c 15 Feb 2005 12:11:20 - 1.78 @@ -119,7 +119,7 @@ return (method[1] == 'E' method[2] == 'A' method[3] == 'D' -? SC_M_GET : UNKNOWN_METHOD); +? SC_M_HEAD : UNKNOWN_METHOD); case 'P': return (method[1] == 'O' method[2] == 'S' - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2005/02/14 09:25:24 Modified:jk/native/common jk_ajp_common.c Log: Add host and port placeholders. Used for logging and jkstatus display. Count bytes readed and tranferred to/from Tomcat. Revision ChangesPath 1.76 +12 -10 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.75 retrieving revision 1.76 diff -u -r1.75 -r1.76 --- jk_ajp_common.c 6 Feb 2005 13:45:11 - 1.75 +++ jk_ajp_common.c 14 Feb 2005 17:25:24 - 1.76 @@ -895,7 +895,8 @@ } if ((rc = jk_tcp_socket_sendfull(ae-sd, jk_b_get_buff(msg), - jk_b_get_len(msg))) 0) { + jk_b_get_len(msg))) 0) { +ae-endpoint.wr += jk_b_get_len(msg); JK_TRACE_EXIT(l); return JK_TRUE; } @@ -937,7 +938,7 @@ JK_TRACE_EXIT(l); return JK_FALSE; } - +ae-endpoint.rd += rc; header = ((unsigned int)head[0] 8) | head[1]; if (ae-proto == AJP13_PROTO) { @@ -1001,6 +1002,7 @@ JK_TRACE_EXIT(l); return JK_FALSE; } +ae-endpoint.rd += rc; if (ae-proto == AJP13_PROTO) { if (JK_IS_DEBUG_LEVEL(l)) @@ -1714,16 +1716,16 @@ if (pThis pThis-worker_private) { ajp_worker_t *p = pThis-worker_private; -port = jk_get_worker_port(props, p-name, port); -host = jk_get_worker_host(props, p-name, host); +p-port = jk_get_worker_port(props, p-name, port); +p-host = jk_get_worker_host(props, p-name, host); if (JK_IS_DEBUG_LEVEL(l)) jk_log(l, JK_LOG_DEBUG, - worker %s contact is %s:%d, - p-name, host, port); + worker %s contact is '%s:%d', + p-name, p-host, p-port); -if (port 1024 host) { -if (jk_resolve(host, port, p-worker_inet_addr)) { +if (p-port 1024) { +if (jk_resolve(p-host, p-port, p-worker_inet_addr)) { JK_TRACE_EXIT(l); return JK_TRUE; } @@ -1732,7 +1734,7 @@ } jk_log(l, JK_LOG_ERROR, invalid host and port %s %d, - ((host == NULL) ? NULL : host), port); + ((p-host == NULL) ? NULL : p-host), p-port); } else { JK_LOG_NULL_PARAMS(l); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/12/17 00:37:16 Modified:jk/native/common jk_ajp_common.c Log: Fix cache by removing reuse flag on reset endpoint. Reset endpoint only when it will be stored in the cache. In case the endpoit can not be stored in the cache it will be closed anyhow. Revision ChangesPath 1.71 +41 -44 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.70 retrieving revision 1.71 diff -u -r1.70 -r1.71 --- jk_ajp_common.c 16 Dec 2004 09:56:31 - 1.70 +++ jk_ajp_common.c 17 Dec 2004 08:37:16 - 1.71 @@ -680,7 +680,6 @@ static void ajp_reset_endpoint(ajp_endpoint_t * ae) { -ae-reuse = JK_FALSE; jk_reset_pool((ae-pool)); } @@ -692,15 +691,13 @@ { JK_TRACE_ENTER(l); -jk_close_pool((ae-pool)); - if (ae-sd 0) { jk_close_socket(ae-sd); jk_log(l, JK_LOG_DEBUG, closed sd = %d\n, ae-sd); -ae-sd = -1;/* just to avoid twice close */ } +jk_close_pool((ae-pool)); free(ae); JK_TRACE_EXIT(l); } @@ -714,6 +711,10 @@ { ajp_worker_t *aw = ae-worker; +/* Close existing endpoint socket */ +jk_close_socket(ae-sd); +ae-sd = -1; + if (aw-ep_cache_sz) { int rc; JK_ENTER_CS(aw-cs, rc); @@ -721,7 +722,8 @@ unsigned i; for (i = 0; i aw-ep_cache_sz; i++) { -if (aw-ep_cache[i]) { +/* Find cache slot with usable socket */ +if (aw-ep_cache[i] aw-ep_cache[i]-sd 0) { ae-sd = aw-ep_cache[i]-sd; aw-ep_cache[i]-sd = -1; ajp_close_endpoint(aw-ep_cache[i], l); @@ -867,6 +869,7 @@ int ajp_connection_tcp_send_message(ajp_endpoint_t * ae, jk_msg_buf_t *msg, jk_logger_t *l) { +int rc; JK_TRACE_ENTER(l); if (ae-proto == AJP13_PROTO) { @@ -884,15 +887,16 @@ return JK_FALSE; } -if (0 -jk_tcp_socket_sendfull(ae-sd, jk_b_get_buff(msg), - jk_b_get_len(msg))) { +if ((rc = jk_tcp_socket_sendfull(ae-sd, jk_b_get_buff(msg), + jk_b_get_len(msg))) 0) { JK_TRACE_EXIT(l); -return JK_FALSE; +return JK_TRUE; } +jk_log(l, JK_LOG_ERROR, + sendfull returned %d with errno=%d \n, rc, errno); JK_TRACE_EXIT(l); -return JK_TRUE; +return JK_FALSE; } /* @@ -1140,13 +1144,10 @@ /* If we got an error or can't send data, then try to get a pooled * connection and try again. If we are succesful, break out of this * loop. */ -if (err -|| ajp_connection_tcp_send_message(ae, op-request, - l) == JK_FALSE) { -jk_log(l, JK_LOG_INFO, +if (err || +(ajp_connection_tcp_send_message(ae, op-request, l) == JK_FALSE)) { +jk_log(l, JK_LOG_ERROR, Error sending request try another pooled connection\n); -jk_close_socket(ae-sd); -ae-sd = -1; ajp_reuse_connection(ae, l); } else @@ -1165,7 +1166,7 @@ * After we are connected, each error that we are going to * have is probably unrecoverable */ -if (!ajp_connection_tcp_send_message(ae, op-request, l)) { +if (ajp_connection_tcp_send_message(ae, op-request, l) == JK_FALSE) { jk_log(l, JK_LOG_INFO, Error sending request on a fresh connection\n); JK_TRACE_EXIT(l); @@ -1200,7 +1201,7 @@ postlen = jk_b_get_len(op-post); if (postlen AJP_HEADER_LEN) { -if (!ajp_connection_tcp_send_message(ae, op-post, l)) { +if (ajp_connection_tcp_send_message(ae, op-post, l) == JK_FALSE) { jk_log(l, JK_LOG_ERROR, Error resending request body (%d)\n, postlen); JK_TRACE_EXIT(l); @@ -1215,7 +1216,7 @@ postlen = jk_b_get_len(s-reco_buf); if (postlen AJP_HEADER_LEN) { -if (!ajp_connection_tcp_send_message(ae, s-reco_buf, l)) { +if (ajp_connection_tcp_send_message(ae, s-reco_buf, l) == JK_FALSE) { jk_log(l, JK_LOG_ERROR, Error resending request body (lb mode) (%d)\n, postlen); @@ -1260,7 +1261,7 @@ } s-content_read = len; -
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/12/16 01:56:31 Modified:jk/native/common jk_ajp_common.c Log: No need to reset the endpoint while closing cause it will be unusable. Revision ChangesPath 1.70 +2 -3 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.69 retrieving revision 1.70 diff -u -r1.69 -r1.70 --- jk_ajp_common.c 16 Dec 2004 09:49:41 - 1.69 +++ jk_ajp_common.c 16 Dec 2004 09:56:31 - 1.70 @@ -692,7 +692,6 @@ { JK_TRACE_ENTER(l); -ajp_reset_endpoint(ae); jk_close_pool((ae-pool)); if (ae-sd 0) { @@ -702,8 +701,8 @@ ae-sd = -1;/* just to avoid twice close */ } -JK_TRACE_EXIT(l); free(ae); +JK_TRACE_EXIT(l); } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/12/16 00:38:05 Modified:jk/native/common jk_ajp_common.c Log: Backport method parsing from ajp project. It's more efficient then previous. Revision ChangesPath 1.68 +173 -95 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.67 retrieving revision 1.68 diff -u -r1.67 -r1.68 --- jk_ajp_common.c 15 Dec 2004 20:31:16 - 1.67 +++ jk_ajp_common.c 16 Dec 2004 08:38:05 - 1.68 @@ -72,106 +72,183 @@ { const char *rc = NULL; sc = sc 0X00FF; -if(sc = SC_RES_HEADERS_NUM sc 0) { +if (sc = SC_RES_HEADERS_NUM sc 0) { rc = response_trans_headers[sc - 1]; } return rc; } +#define UNKNOWN_METHOD (-1) -static int sc_for_req_method(const char *method, unsigned char *sc) +static int sc_for_req_method(const char *method, size_t len) { -int rc = JK_TRUE; -if (0 == strcmp(method, GET)) { -*sc = SC_M_GET; -} -else if (0 == strcmp(method, POST)) { -*sc = SC_M_POST; -} -else if (0 == strcmp(method, HEAD)) { -*sc = SC_M_HEAD; -} -else if (0 == strcmp(method, PUT)) { -*sc = SC_M_PUT; -} -else if (0 == strcmp(method, DELETE)) { -*sc = SC_M_DELETE; -} -else if (0 == strcmp(method, OPTIONS)) { -*sc = SC_M_OPTIONS; -} -else if (0 == strcmp(method, TRACE)) { -*sc = SC_M_TRACE; -} -else if (0 == strcmp(method, PROPFIND)) { -*sc = SC_M_PROPFIND; -} -else if (0 == strcmp(method, PROPPATCH)) { -*sc = SC_M_PROPPATCH; -} -else if (0 == strcmp(method, MKCOL)) { -*sc = SC_M_MKCOL; -} -else if (0 == strcmp(method, COPY)) { -*sc = SC_M_COPY; -} -else if (0 == strcmp(method, MOVE)) { -*sc = SC_M_MOVE; -} -else if (0 == strcmp(method, LOCK)) { -*sc = SC_M_LOCK; -} -else if (0 == strcmp(method, UNLOCK)) { -*sc = SC_M_UNLOCK; -} -else if (0 == strcmp(method, ACL)) { -*sc = SC_M_ACL; -} -else if (0 == strcmp(method, REPORT)) { -*sc = SC_M_REPORT; -} -else if (0 == strcmp(method, VERSION-CONTROL)) { -*sc = SC_M_VERSION_CONTROL; -} -else if (0 == strcmp(method, CHECKIN)) { -*sc = SC_M_CHECKIN; -} -else if (0 == strcmp(method, CHECKOUT)) { -*sc = SC_M_CHECKOUT; -} -else if (0 == strcmp(method, UNCHECKOUT)) { -*sc = SC_M_UNCHECKOUT; -} -else if (0 == strcmp(method, SEARCH)) { -*sc = SC_M_SEARCH; -} -else if (0 == strcmp(method, MKWORKSPACE)) { -*sc = SC_M_MKWORKSPACE; -} -else if (0 == strcmp(method, UPDATE)) { -*sc = SC_M_UPDATE; -} -else if (0 == strcmp(method, LABEL)) { -*sc = SC_M_LABEL; -} -else if (0 == strcmp(method, MERGE)) { -*sc = SC_M_MERGE; -} -else if (0 == strcmp(method, BASELINE-CONTROL)) { -*sc = SC_M_BASELINE_CONTROL; -} -else if (0 == strcmp(method, MKACTIVITY)) { -*sc = SC_M_MKACTIVITY; -} -else { -rc = JK_FALSE; -} +/* Note: the following code was generated by the shilka tool from + the cocom parsing/compilation toolkit. It is an optimized lookup + based on analysis of the input keywords. Postprocessing was done + on the shilka output, but the basic structure and analysis is + from there. Should new HTTP methods be added, then manual insertion + into this code is fine, or simply re-running the shilka tool on + the appropriate input. */ + +/* Note: it is also quite reasonable to just use our method_registry, + but I'm assuming (probably incorrectly) we want more speed here + (based on the optimizations the previous code was doing). */ + +switch (len) +{ +case 3: +switch (method[0]) +{ +case 'P': +return (method[1] == 'U' + method[2] == 'T' +? SC_M_PUT : UNKNOWN_METHOD); +case 'G': +return (method[1] == 'E' + method[2] == 'T' +? SC_M_GET : UNKNOWN_METHOD); +default: +return UNKNOWN_METHOD; +} -return rc; -} +case 4: +switch (method[0]) +{ +case 'H': +return (method[1] == 'E' + method[2] == 'A' + method[3] == 'D' +? SC_M_GET : UNKNOWN_METHOD); +
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
This is an automated message that will hopefully answer any questions you might have: HOW TO UNSUBSCRIBE: Visit www.insanepictures.com/unsubscribe.shtml and enter your email address into the unsubscribe box. HOW TO SUBSCRIBE: Visit www.insanepictures.com and enter your email address into the subscribe box. HOW TO CHANGE YOUR EMAIL ADDRESS: First unsubscribe, then subscribe with your new email address, using the instructions above. HOW TO CONTACT US: If you would like to send us a comment, ask a question, submit a picture or joke, or are interested in advertising, you can email us at [EMAIL PROTECTED] Regards, InsanePictures.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h
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 ChangesPath 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 - 1.68 +++ jk_ajp_common.c 16 Dec 2004 09:49:41 - 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 - 1.26 +++ jk_ajp_common.h 16 Dec 2004 09:49:42 - 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]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/12/15 12:31:17 Modified:jk/native/common jk_ajp_common.c Log: Backport sc_for_req_header from mod_proxy. It uses case insensitive matching. Revision ChangesPath 1.67 +83 -95 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.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- jk_ajp_common.c 13 Dec 2004 07:39:51 - 1.66 +++ jk_ajp_common.c 15 Dec 2004 20:31:16 - 1.67 @@ -68,10 +68,11 @@ WWW-Authenticate }; -static const char *long_res_header_for_sc(int sc) +static const char *long_res_header_for_sc(int sc) { const char *rc = NULL; -if (sc = SC_RES_HEADERS_NUM sc 0) { +sc = sc 0X00FF; +if(sc = SC_RES_HEADERS_NUM sc 0) { rc = response_trans_headers[sc - 1]; } @@ -170,105 +171,92 @@ return rc; } -static int sc_for_req_header(const char *header_name, unsigned short *sc) +#define UNKNOWN_METHOD (-1) + +static int sc_for_req_header(const char *header_name) { -switch (header_name[0]) { -case 'a': -if ('c' == header_name[1] -'c' == header_name[2] -'e' == header_name[3] -'p' == header_name[4] 't' == header_name[5]) { -if ('-' == header_name[6]) { -if (!strcmp(header_name + 7, charset)) { -*sc = SC_ACCEPT_CHARSET; -} -else if (!strcmp(header_name + 7, encoding)) { -*sc = SC_ACCEPT_ENCODING; -} -else if (!strcmp(header_name + 7, language)) { -*sc = SC_ACCEPT_LANGUAGE; -} -else { -return JK_FALSE; +char header[16]; +size_t len = strlen(header_name); +const char *p = header_name; +int i = 0; + +/* ACCEPT-LANGUAGE is the longest headeer + * that is of interest. + */ +if (len 4 || len 15) +return UNKNOWN_METHOD; + +while (*p) +header[i++] = toupper((unsigned char)*p++); +header[i] = '\0'; +p = header[1]; + +switch (header[0]) { +case 'A': +if (memcmp(p, CCEPT, 5) == 0) { +if (!header[6]) +return SC_ACCEPT; +else if (header[6] == '-') { +p += 6; +if (memcmp(p, CHARSET, 7) == 0) +return SC_ACCEPT_CHARSET; +else if (memcmp(p, ENCODING, 8) == 0) +return SC_ACCEPT_ENCODING; +else if (memcmp(p, LANGUAGE, 8) == 0) +return SC_ACCEPT_LANGUAGE; +else +return UNKNOWN_METHOD; } +else +return UNKNOWN_METHOD; } -else if ('\0' == header_name[6]) { -*sc = SC_ACCEPT; -} -else { -return JK_FALSE; -} -} -else if (!strcmp(header_name, authorization)) { -*sc = SC_AUTHORIZATION; -} -else { -return JK_FALSE; -} +else if (memcmp(p, UTHORIZATION, 12) == 0) +return SC_AUTHORIZATION; +else +return UNKNOWN_METHOD; break; - -case 'c': -if (!strcmp(header_name, cookie)) { -*sc = SC_COOKIE; -} -else if (!strcmp(header_name, connection)) { -*sc = SC_CONNECTION; -} -else if (!strcmp(header_name, content-type)) { -*sc = SC_CONTENT_TYPE; -} -else if (!strcmp(header_name, content-length)) { -*sc = SC_CONTENT_LENGTH; -} -else if (!strcmp(header_name, cookie2)) { -*sc = SC_COOKIE2; -} -else { -return JK_FALSE; -} +case 'C': +if (memcmp(p, OOKIE, 5) == 0) +return SC_COOKIE; +else if(memcmp(p, ONNECTION, 9) == 0) +return SC_CONNECTION; +else if(memcmp(p, ONTENT-TYPE, 11) == 0) +return SC_CONTENT_TYPE; +else if(memcmp(p, ONTENT-LENGTH, 13) == 0) +return SC_CONTENT_LENGTH; +else if(memcmp(p, OOKIE2, 6) == 0) +return SC_COOKIE2; +else +return UNKNOWN_METHOD; break; - -case 'h': -if (!strcmp(header_name, host)) { -*sc =
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/12/12 23:39:51 Modified:jk/native/common jk_ajp_common.c Log: Fix the bug initializing ajp. The worker will not initialize if cache_size was set to zero. Revision ChangesPath 1.66 +7 -6 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.65 retrieving revision 1.66 diff -u -r1.65 -r1.66 --- jk_ajp_common.c 26 Nov 2004 16:59:51 - 1.65 +++ jk_ajp_common.c 13 Dec 2004 07:39:51 - 1.66 @@ -1666,7 +1666,7 @@ jk_map_t *props, jk_worker_env_t *we, jk_logger_t *l, int proto) { int cache; - +int rc = JK_FALSE; /* * start the connection cache */ @@ -1682,7 +1682,7 @@ jk_log(l, JK_LOG_ERROR, unknown protocol %d\n, proto); JK_TRACE_EXIT(l); -return JK_FALSE; +return rc; } if (pThis pThis-worker_private) { @@ -1782,19 +1782,20 @@ p-ep_cache[i] = NULL; } JK_INIT_CS((p-cs), i); -if (i) { +if (i == JK_FALSE) { JK_TRACE_EXIT(l); -return JK_TRUE; +return JK_FALSE; } } } +rc = JK_TRUE; } else { JK_LOG_NULL_PARAMS(l); } JK_TRACE_EXIT(l); -return JK_FALSE; +return rc; } int ajp_destroy(jk_worker_t **pThis, jk_logger_t *l, int proto) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
This is an automated message that will hopefully answer any questions you might have: HOW TO UNSUBSCRIBE: Visit www.insanepictures.com/unsubscribe.shtml and enter your email address into the unsubscribe box. HOW TO SUBSCRIBE: Visit www.insanepictures.com and enter your email address into the subscribe box. HOW TO CHANGE YOUR EMAIL ADDRESS: First unsubscribe, then subscribe with your new email address, using the instructions above. HOW TO CONTACT US: If you would like to send us a comment, ask a question, submit a picture or joke, or are interested in advertising, you can email us at [EMAIL PROTECTED] Regards, InsanePictures.com - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/11/19 04:59:15 Modified:jk/native/common jk_ajp_common.c Log: Add logging for retry attempts. Revision ChangesPath 1.64 +2 -1 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.63 retrieving revision 1.64 diff -u -r1.63 -r1.64 --- jk_ajp_common.c 12 Nov 2004 18:45:24 - 1.63 +++ jk_ajp_common.c 19 Nov 2004 12:59:15 - 1.64 @@ -1509,6 +1509,7 @@ return JK_FALSE; } +jk_log(l, JK_LOG_DEBUG, processing with %d retries\n, s-retries); /* * JK_RETRIES could be replaced by the number of workers in * a load-balancing configuration - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
When are you going to go to hell? I sincerely wish from my heart that you rot in hell forever for sending idiotic, foolish non-stop mails. Go to hell you stinky fools.
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
You Are Getting Auto Responses. I Hope You Do Undestand The Meaning Of Auto Response. Sameway Go To Hell First And Wait For Me there...Forever - Original Message - From: Kaniz Khan [EMAIL PROTECTED] To: Tomcat Developers List [EMAIL PROTECTED] Sent: Friday, November 19, 2004 6:35 PM Subject: Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c When are you going to go to hell? I sincerely wish from my heart that you rot in hell forever for sending idiotic, foolish non-stop mails. Go to hell you stinky fools. - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/11/12 04:47:37 Modified:jk/native/common jk_ajp_common.c Log: Log retry instead of err. TODO: we should make the number of retries configurable. Revision ChangesPath 1.62 +2 -2 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.61 retrieving revision 1.62 diff -u -r1.61 -r1.62 --- jk_ajp_common.c 11 Nov 2004 18:26:57 - 1.61 +++ jk_ajp_common.c 12 Nov 2004 12:47:37 - 1.62 @@ -1563,7 +1563,7 @@ else { jk_log(l, JK_LOG_INFO, sending request to tomcat failed in send loop. - err=%d\n, i); + retry=%d\n, i); } } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/11/11 10:26:57 Modified:jk/native/common jk_ajp_common.c Log: Add new trace macros and clean up some log messages. Needs more work on logging for recoverable operations. Revision ChangesPath 1.61 +190 -121 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.60 retrieving revision 1.61 diff -u -r1.60 -r1.61 --- jk_ajp_common.c 8 Nov 2004 13:37:46 - 1.60 +++ jk_ajp_common.c 11 Nov 2004 18:26:57 - 1.61 @@ -293,12 +293,13 @@ unsigned char method; unsigned i; -jk_log(l, JK_LOG_DEBUG, Into ajp_marshal_into_msgb\n); +JK_TRACE_ENTER(l); if (!sc_for_req_method(s-method, method)) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - No such method %s\n, + No such method %s\n, s-method); +JK_TRACE_EXIT(l); return JK_FALSE; } @@ -314,8 +315,8 @@ jk_b_append_int(msg, (unsigned short)(s-num_headers))) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the message begining\n); + failed appending the message begining\n); +JK_TRACE_EXIT(l); return JK_FALSE; } @@ -325,24 +326,24 @@ if (sc_for_req_header(s-headers_names[i], sc)) { if (jk_b_append_int(msg, sc)) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the header name\n); + failed appending the header name\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } else { if (jk_b_append_string(msg, s-headers_names[i])) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the header name\n); + failed appending the header name\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } if (jk_b_append_string(msg, s-headers_values[i])) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the header value\n); + failed appending the header value\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -351,8 +352,8 @@ if (jk_b_append_byte(msg, SC_A_SECRET) || jk_b_append_string(msg, s-secret)) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending secret\n); + failed appending secret\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -361,8 +362,8 @@ if (jk_b_append_byte(msg, SC_A_REMOTE_USER) || jk_b_append_string(msg, s-remote_user)) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the remote user\n); + failed appending the remote user\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -370,8 +371,8 @@ if (jk_b_append_byte(msg, SC_A_AUTH_TYPE) || jk_b_append_string(msg, s-auth_type)) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the auth type\n); + failed appending the auth type\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -383,8 +384,8 @@ jk_b_append_string(msg, s-query_string)) { #endif jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the query string\n); + failed appending the query string\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -392,8 +393,8 @@ if (jk_b_append_byte(msg, SC_A_JVM_ROUTE) || jk_b_append_string(msg, s-jvm_route)) { jk_log(l, JK_LOG_ERROR, - Error ajp_marshal_into_msgb - - Error appending the jvm route\n); + failed appending the jvm route\n); +JK_TRACE_EXIT(l); return JK_FALSE; } } @@ -401,8 +402,8 @@ if (jk_b_append_byte(msg, SC_A_SSL_CERT) || jk_b_append_string(msg, s-ssl_cert)) { jk_log(l,
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2004/11/08 05:37:46 Modified:jk/native/common jk_ajp_common.c Log: Use socket timeout and recycle timeout. Revision ChangesPath 1.60 +21 -13 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.59 retrieving revision 1.60 diff -u -r1.59 -r1.60 --- jk_ajp_common.c 8 Oct 2004 07:50:39 - 1.59 +++ jk_ajp_common.c 8 Nov 2004 13:37:46 - 1.60 @@ -728,7 +728,8 @@ for (attempt = 0; attempt ae-worker-connect_retry_attempts; attempt++) { ae-sd = jk_open_socket(ae-worker-worker_inet_addr, JK_TRUE, -ae-worker-keepalive, l); +ae-worker-keepalive, +ae-worker-socket_timeout, l); if (ae-sd = 0) { jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_connect_to_endpoint, @@ -742,7 +743,7 @@ return (ae-worker-logon(ae, l)); /* should we send a CPING to validate connection ? */ -if (ae-worker-connect_timeout != 0) +if (ae-worker-connect_timeout 0) return (ajp_handle_cping_cpong (ae, ae-worker-connect_timeout, l)); @@ -1483,9 +1484,9 @@ without recovery in send loop %d\n, i); return JK_FALSE; } -jk_log(l, JK_LOG_ERROR, - ERROR: Receiving from tomcat failed, - recoverable operation. err=%d\n, i); +jk_log(l, JK_LOG_INFO, + Receiving from tomcat failed, + recoverable operation attempt=%d\n, i); } } @@ -1604,7 +1605,7 @@ ajp_worker_t *p = pThis-worker_private; int cache_sz = jk_get_worker_cache_size(props, p-name, cache); p-socket_timeout = -jk_get_worker_socket_timeout(props, p-name, AJP13_DEF_TIMEOUT); +jk_get_worker_socket_timeout(props, p-name, AJP_DEF_SOCKET_TIMEOUT); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting socket timeout to %d\n, @@ -1617,6 +1618,13 @@ In jk_worker_t::init, setting socket keepalive to %d\n, p-keepalive); +p-recycle_timeout = +jk_get_worker_recycle_timeout(props, p-name, AJP13_DEF_TIMEOUT); + +jk_log(l, JK_LOG_DEBUG, + In jk_worker_t::init, setting connection recycle timeout to %d\n, + p-recycle_timeout); + p-cache_timeout = jk_get_worker_cache_timeout(props, p-name, AJP_DEF_CACHE_TIMEOUT); @@ -1797,8 +1805,8 @@ if (aw-cache_timeout) { for (; i aw-ep_cache_sz; i++) { if (aw-ep_cache[i]) { -unsigned elapsed = -(unsigned)(now - ae-last_access); +int elapsed = +(int)(now - ae-last_access); if (elapsed aw-cache_timeout) { jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_get_endpoint, @@ -1814,18 +1822,18 @@ if (ae) { if (ae-sd 0) { /* Handle timeouts for open sockets */ -unsigned elapsed = (unsigned)(now - ae-last_access); +int elapsed = (int)(now - ae-last_access); ae-last_access = now; jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_get_endpoint, time elapsed since last request = %u seconds\n, elapsed); -if (aw-socket_timeout 0 -elapsed aw-socket_timeout) { +if (aw-recycle_timeout 0 +elapsed aw-recycle_timeout) { jk_close_socket(ae-sd); jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_get_endpoint, - reached socket timeout, closed sd = %d\n, + reached connection recycle timeout, closed sd = %d\n, ae-sd); ae-sd = -1;/* just to avoid twice close */
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2004/08/31 01:33:24 Modified:jk/native/common jk_ajp_common.c Log: Fix Bugzilla#12404 and ensure that now is correctly initialized. Patch provided by rainer.jung at kippdata.de Revision ChangesPath 1.58 +4 -6 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.57 retrieving revision 1.58 diff -u -r1.57 -r1.58 --- jk_ajp_common.c 9 Aug 2004 22:30:53 - 1.57 +++ jk_ajp_common.c 31 Aug 2004 08:33:24 - 1.58 @@ -1750,9 +1750,7 @@ if (rc) { unsigned i; time_t now; -if (aw-socket_timeout 0 || aw-cache_timeout) { -now = time(NULL); -} +now = time(NULL); for (i = 0 ; i aw-ep_cache_sz ; i++) { if (aw-ep_cache[i]) { ae = aw-ep_cache[i]; @@ -1768,7 +1766,7 @@ if (elapsed aw-cache_timeout) { jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_get_endpoint, - cleaning cache slot = %d elapsed %d\n, + cleaning cache slot = %d elapsed %u\n, i, elapsed); ajp_close_endpoint(aw-ep_cache[i], l); aw-ep_cache[i] = NULL; @@ -1784,7 +1782,7 @@ ae-last_access = now; jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_get_endpoint, - time elapsed since last request = %d seconds\n, + time elapsed since last request = %u seconds\n, elapsed); if (aw-socket_timeout 0 elapsed aw-socket_timeout) { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mmanders2004/08/09 15:30:53 Modified:jk/native/common jk_ajp_common.c Log: The variables being referenced by the format strings were in the wrong order. Revision ChangesPath 1.57 +3 -3 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.56 retrieving revision 1.57 diff -u -r1.56 -r1.57 --- jk_ajp_common.c 1 Mar 2004 13:51:48 - 1.56 +++ jk_ajp_common.c 9 Aug 2004 22:30:53 - 1.57 @@ -801,7 +801,7 @@ jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: Error - Wrong message format 0x%04x from %s\n, - jk_dump_hinfo(ae-worker-worker_inet_addr, buf), header); + header, jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); } return JK_FALSE; } @@ -818,7 +818,7 @@ jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: Error - Wrong message format 0x%04x from %s\n, - jk_dump_hinfo(ae-worker-worker_inet_addr, buf), header); + header, jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); } return JK_FALSE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2004/03/01 03:21:03 Modified:jk/native/common jk_ajp_common.c Log: Add more informations on port we're using... Revision ChangesPath 1.53 +5 -5 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.52 retrieving revision 1.53 diff -u -r1.52 -r1.53 --- jk_ajp_common.c 25 Feb 2004 03:33:06 - 1.52 +++ jk_ajp_common.c 1 Mar 2004 11:21:03 - 1.53 @@ -699,8 +699,8 @@ if(ae-sd = 0) { jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_connect_to_endpoint, - connected sd = %d\n, - ae-sd); + connected sd = %d, port = %d\n, + ae-sd, (int)ae-worker-worker_inet_addr.sin_port); /* set last_access */ ae-last_access = time(NULL); @@ -718,8 +718,8 @@ jk_log(l, JK_LOG_INFO, Error connecting to tomcat. Tomcat is probably not started or is - listening on the wrong port. Failed errno = %d\n, - errno); + listening on the wrong port (%d). Failed errno = %d\n, + (int)ae-worker-worker_inet_addr.sin_port, errno); return JK_FALSE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2004/03/01 05:47:23 Modified:jk/native/common jk_ajp_common.c Log: More debug/trace infos on remote tomcats Revision ChangesPath 1.55 +13 -11jakarta-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.54 retrieving revision 1.55 diff -u -r1.54 -r1.55 --- jk_ajp_common.c 1 Mar 2004 13:37:38 - 1.54 +++ jk_ajp_common.c 1 Mar 2004 13:47:23 - 1.55 @@ -795,12 +795,13 @@ if (header == AJP14_SW_HEADER) { jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: - Error - received AJP14 reply on an AJP13 connection\n); + Error - received AJP14 reply on an AJP13 connection from %s\n, + jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); } else { jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: - Error - Wrong message format 0x%04x\n, - header); + Error - Wrong message format 0x%04x from %s\n, + jk_dump_hinfo(ae-worker-worker_inet_addr, buf, header); } return JK_FALSE; } @@ -811,12 +812,13 @@ if (header == AJP13_SW_HEADER) { jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: - Error - received AJP13 reply on an AJP14 connection\n); + Error - received AJP13 reply on an AJP14 connection from %s\n, + jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); } else { jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: - Error - Wrong message format 0x%04x\n, - header); + Error - Wrong message format 0x%04x from %s\n, + jk_dump_hinfo(ae-worker-worker_inet_addr, buf), header); } return JK_FALSE; } @@ -828,8 +830,8 @@ if(msglen jk_b_get_size(msg)) { jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: - Error - Wrong message size %d %d\n, - msglen, jk_b_get_size(msg)); + Error - Wrong message size %d %d from %s\n, + msglen, jk_b_get_size(msg), jk_dump_hinfo(ae-worker-worker_inet_addr, buf)); return JK_FALSE; } @@ -840,8 +842,8 @@ if(rc 0) { jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, - network problems or tomcat is down %d\n, - rc); + network problems or tomcat (%s) is down %d\n, + jk_dump_hinfo(ae-worker-worker_inet_addr, buf), rc); return JK_FALSE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2004/03/01 05:51:48 Modified:jk/native/common jk_ajp_common.c Log: Ups Revision ChangesPath 1.56 +2 -2 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.55 retrieving revision 1.56 diff -u -r1.55 -r1.56 --- jk_ajp_common.c 1 Mar 2004 13:47:23 - 1.55 +++ jk_ajp_common.c 1 Mar 2004 13:51:48 - 1.56 @@ -801,7 +801,7 @@ jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: Error - Wrong message format 0x%04x from %s\n, - jk_dump_hinfo(ae-worker-worker_inet_addr, buf, header); + jk_dump_hinfo(ae-worker-worker_inet_addr, buf), header); } return JK_FALSE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
[EMAIL PROTECTED] wrote: hgomez 2004/03/01 05:47:23 Modified:jk/native/common jk_ajp_common.c Log: More debug/trace infos on remote tomcats I added more infos on IP/PORT of remote tomcats in jk, since I've some reports that there is a problem for admins to determine which tomcat is down when they have many workers defined... I overcome the inet_ntoa by using a jk_dump_hinfo function which should works also in multi-threaded env. It should works on Unixes, but I'd like to have reports from Win32, Netware and others exotics OS users... - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
truk2004/02/24 19:33:06 Modified:jk/native/common jk_ajp_common.c Log: Fix bug 22604. Patch from David Rees. Revision ChangesPath 1.52 +2 -2 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.51 retrieving revision 1.52 diff -u -r1.51 -r1.52 --- jk_ajp_common.c 24 Feb 2004 08:45:46 - 1.51 +++ jk_ajp_common.c 25 Feb 2004 03:33:06 - 1.52 @@ -718,7 +718,7 @@ jk_log(l, JK_LOG_INFO, Error connecting to tomcat. Tomcat is probably not started or is - listenning on the wrong port. Failed errno = %d\n, + listening on the wrong port. Failed errno = %d\n, errno); return JK_FALSE; } - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2004/02/17 02:38:25 Modified:jk/native/common jk_ajp_common.c Log: Oups, missing bracket Revision ChangesPath 1.49 +53 -53jakarta-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.48 retrieving revision 1.49 diff -u -r1.48 -r1.49 --- jk_ajp_common.c 17 Feb 2004 10:36:00 - 1.48 +++ jk_ajp_common.c 17 Feb 2004 10:38:25 - 1.49 @@ -1282,58 +1282,58 @@ } if(!ajp_connection_tcp_get_message(p, op-reply, l)) { -/* we just can't recover, unset recover flag */ - if(headeratclient == JK_FALSE) { -jk_log(l, JK_LOG_ERROR, - Tomcat is down or network problems. - No response has been sent to the client (yet)\n); - /* - * communication with tomcat has been interrupted BEFORE - * headers have been sent to the client. - * DISCUSSION: As we suppose that tomcat has already started - * to process the query we think it's unrecoverable (and we - * should not retry or switch to another tomcat in the - * cluster). - */ - - /* -* We mark it unrecoverable if recovery_opts set to RECOVER_ABORT_IF_TCGETREQUEST -*/ -if (p-worker-recovery_opts RECOVER_ABORT_IF_TCGETREQUEST) - op-recoverable = JK_FALSE; - /* -* we want to display the webservers error page, therefore -* we return JK_FALSE -*/ -return JK_FALSE; - - } else { -jk_log(l, JK_LOG_ERROR, - Error reading reply from tomcat. - Tomcat is down or network problems. -Part of the response has already been sent to the client\n); - - /* communication with tomcat has been interrupted AFTER - * headers have been sent to the client. - * headers (and maybe parts of the body) have already been - * sent, therefore the response is complete in a sense - * that nobody should append any data, especially no 500 error - * page of the webserver! - * - * BUT if you retrun JK_TRUE you have a 200 (OK) code in your - * in your apache access.log instead of a 500 (Error). - * Therefore return FALSE/FALSE - * return JK_TRUE; - */ - - /* - * We mark it unrecoverable if recovery_opts set to RECOVER_ABORT_IF_TCSENDHEADER - */ -if (p-worker-recovery_opts RECOVER_ABORT_IF_TCSENDHEADER) - op-recoverable = JK_FALSE; - - return JK_FALSE; - } + /* we just can't recover, unset recover flag */ + if(headeratclient == JK_FALSE) { + jk_log(l, JK_LOG_ERROR, +Tomcat is down or network problems. +No response has been sent to the client (yet)\n); + /* + * communication with tomcat has been interrupted BEFORE + * headers have been sent to the client. + * DISCUSSION: As we suppose that tomcat has already started + * to process the query we think it's unrecoverable (and we + * should not retry or switch to another tomcat in the + * cluster). + */ + + /* +* We mark it unrecoverable if recovery_opts set to RECOVER_ABORT_IF_TCGETREQUEST +*/ + if (p-worker-recovery_opts RECOVER_ABORT_IF_TCGETREQUEST) + op-recoverable = JK_FALSE; + /* +* we want to display the webservers error page, therefore +* we return JK_FALSE +*/ +return JK_FALSE; + } else { + jk_log(l, JK_LOG_ERROR, +Error reading reply from tomcat. +Tomcat is down or network problems. +Part of the response
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
Umm, tab police? ;-) -Dave [EMAIL PROTECTED] wrote, On 2/17/2004 2:38 AM: hgomez 2004/02/17 02:38:25 Modified:jk/native/common jk_ajp_common.c - /* communication with tomcat has been interrupted AFTER - * headers have been sent to the client. - * headers (and maybe parts of the body) have already been - * sent, therefore the response is complete in a sense - * that nobody should append any data, especially no 500 error - * page of the webserver! - * - * BUT if you retrun JK_TRUE you have a 200 (OK) code in your - * in your apache access.log instead of a 500 (Error). - * Therefore return FALSE/FALSE - * return JK_TRUE; - */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
Attached is a patch which cleans it up. -Dave David Rees wrote, On 2/17/2004 8:28 AM: Umm, tab police? ;-) -Dave [EMAIL PROTECTED] wrote, On 2/17/2004 2:38 AM: hgomez 2004/02/17 02:38:25 Modified:jk/native/common jk_ajp_common.c - /* communication with tomcat has been interrupted AFTER - * headers have been sent to the client. - * headers (and maybe parts of the body) have already been - * sent, therefore the response is complete in a sense - * that nobody should append any data, especially no 500 error - * page of the webserver! - * - * BUT if you retrun JK_TRUE you have a 200 (OK) code in your - * in your apache access.log instead of a 500 (Error). - * Therefore return FALSE/FALSE - * return JK_TRUE; - */ - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] --- jk_ajp_common.c.orig2004-02-17 08:29:48.741514459 -0800 +++ jk_ajp_common.c 2004-02-17 08:33:47.518132894 -0800 @@ -658,28 +658,28 @@ inttimeout, jk_logger_t *l) { - fd_set rset; - fd_set eset; - struct timeval tv; - int rc; - - FD_ZERO(rset); - FD_ZERO(eset); - FD_SET(ae-sd, rset); - FD_SET(ae-sd, eset); +fd_set rset; +fd_set eset; +struct timeval tv; +int rc; + +FD_ZERO(rset); +FD_ZERO(eset); +FD_SET(ae-sd, rset); +FD_SET(ae-sd, eset); - tv.tv_sec = timeout / 1000; - tv.tv_usec = (timeout % 1000) * 1000; +tv.tv_sec = timeout / 1000; +tv.tv_usec = (timeout % 1000) * 1000; - rc = select(ae-sd + 1, rset, NULL, eset, tv); +rc = select(ae-sd + 1, rset, NULL, eset, tv); if ((rc 1) || (FD_ISSET(ae-sd, eset))) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:is_input_event: error during select [%d]\n, rc); - return JK_FALSE; - } - - return ((FD_ISSET(ae-sd, rset)) ? JK_TRUE : JK_FALSE) ; +{ +jk_log(l, JK_LOG_ERROR, Error ajp13:is_input_event: error during select [%d]\n, rc); +return JK_FALSE; +} + +return ((FD_ISSET(ae-sd, rset)) ? JK_TRUE : JK_FALSE) ; } @@ -687,46 +687,46 @@ * Handle the CPING/CPONG initial query */ int ajp_handle_cping_cpong(ajp_endpoint_t *ae, - int timeout, + inttimeout, jk_logger_t*l) { - int cmd; - jk_msg_buf_t * msg; +intcmd; +jk_msg_buf_t * msg; + +msg = jk_b_new(ae-pool); +jk_b_set_buffer_size(msg, 16);/* 16 is way too large but I'm lazy :-) */ +jk_b_reset(msg); +jk_b_append_byte(msg, AJP13_CPING_REQUEST); - msg = jk_b_new(ae-pool); - jk_b_set_buffer_size(msg, 16); /* 16 is way too large but I'm lazy :-) */ - jk_b_reset(msg); - jk_b_append_byte(msg, AJP13_CPING_REQUEST); - - /* Send CPing query */ - if (ajp_connection_tcp_send_message(ae, msg, l) != JK_TRUE) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: can't send cping query\n); - return JK_FALSE; - } - - /* wait for Pong reply for timeout milliseconds -*/ - if (ajp_is_input_event(ae, timeout, l) == JK_FALSE) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: timeout in reply pong\n); - return JK_FALSE; - } - - /* Read and check for Pong reply -*/ - if (ajp_connection_tcp_get_message(ae, msg, l) != JK_TRUE) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, not received\n); - return JK_FALSE; - } - - if ((cmd = jk_b_get_byte(msg)) != AJP13_CPONG_REPLY) { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, received %d instead\n, cmd); - return JK_FALSE; - } +/* Send CPing query */ +if (ajp_connection_tcp_send_message(ae, msg, l) != JK_TRUE) +{ +jk_log(l, JK_LOG_ERROR, Error ajp13:cping: can't send cping query\n); +return JK_FALSE; +} + +/* wait for Pong reply for timeout milliseconds + */ +if (ajp_is_input_event(ae, timeout, l) == JK_FALSE) +{ +jk_log(l, JK_LOG_ERROR, Error ajp13:cping: timeout in reply pong\n); +return JK_FALSE; +} + +/* Read and check for Pong reply + */ +if (ajp_connection_tcp_get_message(ae, msg, l) != JK_TRUE) +{ +jk_log(l,
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
David Rees wrote: Attached is a patch which cleans it up. Applied and commited thanks - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2004/02/17 09:36:19 Modified:jk/native/common jk_ajp_common.c Log: Avoid problems with Tab Police (Damn't Eclipse) Revision ChangesPath 1.50 +186 -186 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.49 retrieving revision 1.50 diff -u -r1.49 -r1.50 --- jk_ajp_common.c 17 Feb 2004 10:38:25 - 1.49 +++ jk_ajp_common.c 17 Feb 2004 17:36:19 - 1.50 @@ -658,28 +658,28 @@ inttimeout, jk_logger_t *l) { - fd_set rset; - fd_set eset; - struct timeval tv; - int rc; - - FD_ZERO(rset); - FD_ZERO(eset); - FD_SET(ae-sd, rset); - FD_SET(ae-sd, eset); +fd_set rset; +fd_set eset; +struct timeval tv; +int rc; + +FD_ZERO(rset); +FD_ZERO(eset); +FD_SET(ae-sd, rset); +FD_SET(ae-sd, eset); - tv.tv_sec = timeout / 1000; - tv.tv_usec = (timeout % 1000) * 1000; +tv.tv_sec = timeout / 1000; +tv.tv_usec = (timeout % 1000) * 1000; - rc = select(ae-sd + 1, rset, NULL, eset, tv); +rc = select(ae-sd + 1, rset, NULL, eset, tv); if ((rc 1) || (FD_ISSET(ae-sd, eset))) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:is_input_event: error during select [%d]\n, rc); - return JK_FALSE; - } - - return ((FD_ISSET(ae-sd, rset)) ? JK_TRUE : JK_FALSE) ; +{ +jk_log(l, JK_LOG_ERROR, Error ajp13:is_input_event: error during select [%d]\n, rc); +return JK_FALSE; +} + +return ((FD_ISSET(ae-sd, rset)) ? JK_TRUE : JK_FALSE) ; } @@ -687,46 +687,46 @@ * Handle the CPING/CPONG initial query */ int ajp_handle_cping_cpong(ajp_endpoint_t *ae, -int timeout, + inttimeout, jk_logger_t*l) { - int cmd; - jk_msg_buf_t * msg; +intcmd; +jk_msg_buf_t * msg; - msg = jk_b_new(ae-pool); - jk_b_set_buffer_size(msg, 16); /* 16 is way too large but I'm lazy :-) */ - jk_b_reset(msg); - jk_b_append_byte(msg, AJP13_CPING_REQUEST); - - /* Send CPing query */ - if (ajp_connection_tcp_send_message(ae, msg, l) != JK_TRUE) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: can't send cping query\n); - return JK_FALSE; - } - - /* wait for Pong reply for timeout milliseconds - */ - if (ajp_is_input_event(ae, timeout, l) == JK_FALSE) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: timeout in reply pong\n); - return JK_FALSE; - } - - /* Read and check for Pong reply - */ - if (ajp_connection_tcp_get_message(ae, msg, l) != JK_TRUE) - { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, not received\n); - return JK_FALSE; - } - - if ((cmd = jk_b_get_byte(msg)) != AJP13_CPONG_REPLY) { - jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, received %d instead\n, cmd); - return JK_FALSE; - } +msg = jk_b_new(ae-pool); +jk_b_set_buffer_size(msg, 16);/* 16 is way too large but I'm lazy :-) */ +jk_b_reset(msg); +jk_b_append_byte(msg, AJP13_CPING_REQUEST); - return JK_TRUE; +/* Send CPing query */ +if (ajp_connection_tcp_send_message(ae, msg, l) != JK_TRUE) +{ +jk_log(l, JK_LOG_ERROR, Error ajp13:cping: can't send cping query\n); +return JK_FALSE; +} + +/* wait for Pong reply for timeout milliseconds + */ +if (ajp_is_input_event(ae, timeout, l) == JK_FALSE) +{ +jk_log(l, JK_LOG_ERROR, Error ajp13:cping: timeout in reply pong\n); +return JK_FALSE; +} + +/* Read and check for Pong reply + */ +if (ajp_connection_tcp_get_message(ae, msg, l) != JK_TRUE) +{ +jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, not received\n); +return JK_FALSE; +} + +if ((cmd = jk_b_get_byte(msg)) != AJP13_CPONG_REPLY) { +jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, received %d instead\n, cmd); +return JK_FALSE; +} + +return JK_TRUE; } int ajp_connect_to_endpoint(ajp_endpoint_t *ae, @@ -749,10 +749,10 @@ if (ae-worker-logon != NULL)
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_global.h jk_lb_worker.c jk_msg_buff.c jk_msg_buff.h jk_service.h
hgomez 2004/02/11 01:49:49 Modified:jk/native/common jk_ajp_common.c jk_global.h jk_lb_worker.c jk_msg_buff.c jk_msg_buff.h jk_service.h Log: Fix the POST recovery in LB mode. Revision ChangesPath 1.47 +22 -2 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.46 retrieving revision 1.47 diff -u -r1.46 -r1.47 --- jk_ajp_common.c 6 Feb 2004 08:37:46 - 1.46 +++ jk_ajp_common.c 11 Feb 2004 09:49:49 - 1.47 @@ -1091,7 +1091,20 @@ } else jk_log(l, JK_LOG_DEBUG, Resent the request body (%d)\n, postlen); - +} +else if (s-reco_status == RECO_FILLED) +{ + /* Recovery in LB MODE */ + postlen = jk_b_get_len(s-reco_buf); + + if (postlen AJP_HEADER_LEN) { + if(!ajp_connection_tcp_send_message(ae, s-reco_buf, l)) { + jk_log(l, JK_LOG_ERROR, Error resending request body (lb mode) (%d)\n, postlen); + return JK_FALSE; + } + } + else + jk_log(l, JK_LOG_DEBUG, Resent the request body (lb mode) (%d)\n, postlen); } else { /* We never sent any POST data and we check if we have to send at @@ -1117,6 +1130,13 @@ op-recoverable = JK_FALSE; return JK_CLIENT_ERROR; } + +/* If a RECOVERY buffer is available in LB mode, fill it */ +if (s-reco_status == RECO_INITED) { + jk_b_copy(op-post, s-reco_buf); + s-reco_status = RECO_FILLED; +} + s-content_read = len; if (!ajp_connection_tcp_send_message(ae, op-post, l)) { jk_log(l, JK_LOG_ERROR, Error sending request body\n); 1.27 +9 -1 jakarta-tomcat-connectors/jk/native/common/jk_global.h Index: jk_global.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_global.h,v retrieving revision 1.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- jk_global.h 5 Jan 2004 22:41:53 - 1.26 +++ jk_global.h 11 Feb 2004 09:49:49 - 1.27 @@ -163,6 +163,14 @@ #endif /* + * RECO STATUS + */ + +#define RECO_NONE0x00 +#define RECO_INITED 0x01 +#define RECO_FILLED 0x02 + +/* * JK options */ 1.16 +6 -2 jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c Index: jk_lb_worker.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_lb_worker.c,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- jk_lb_worker.c6 Feb 2004 08:37:59 - 1.15 +++ jk_lb_worker.c11 Feb 2004 09:49:49 - 1.16 @@ -323,7 +323,11 @@ /* you can not recover on another load balancer */ *is_recoverable_error = JK_FALSE; - +/* set the recovery post, for LB mode */ +s-reco_buf = jk_b_new(s-pool); +jk_b_set_buffer_size(s-reco_buf, DEF_BUFFER_SZ); +jk_b_reset(s-reco_buf); +s-reco_status = RECO_INITED; while(1) { worker_record_t *rec = get_most_suitable_worker(p-worker, s, attempt++); int rc; 1.15 +17 -1 jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c Index: jk_msg_buff.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.c,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- jk_msg_buff.c 5 Nov 2003 09:15:39 - 1.14 +++ jk_msg_buff.c 11 Feb 2004 09:49:49 - 1.15 @@ -476,3 +476,19 @@ #endif } + +int jk_b_copy(jk_msg_buf_t *smsg, + jk_msg_buf_t *dmsg) +{ + if (smsg == NULL || dmsg == NULL) + return (-1); + + if (dmsg-maxlen smsg-len) + return (-2); + + memcpy(dmsg-buf, smsg-buf, smsg-len); + dmsg-len = smsg-len; + + return (smsg-len); +} + 1.8 +6 -1 jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.h Index: jk_msg_buff.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_msg_buff.h,v retrieving revision 1.7 retrieving revision 1.8 diff -u
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2004/02/06 00:37:46 Modified:jk/native/common jk_ajp_common.c Log: More info to track the potential problem in POST recovery Revision ChangesPath 1.46 +16 -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.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- jk_ajp_common.c 25 Jan 2004 23:51:41 - 1.45 +++ jk_ajp_common.c 6 Feb 2004 08:37:46 - 1.46 @@ -1007,6 +1007,7 @@ ajp_operation_t *op) { int err = 0; + int postlen; /* Up to now, we can recover */ op-recoverable = JK_TRUE; @@ -1074,18 +1075,23 @@ ae-left_bytes_to_send, jk_b_get_len(op-reply) - AJP_HEADER_LEN); /* - * POST recovery job is done here. - * It's not very fine to have posted data in reply but that's the only easy - * way to do that for now. Sharing the reply is really a bad solution but - * it will works for POST DATA less than 8k. + * POST recovery job is done here and will work when data to + * POST are less than 8k, since it's the maximum size of op-post buffer. * We send here the first part of data which was sent previously to the * remote Tomcat */ -if (jk_b_get_len(op-post) AJP_HEADER_LEN) { + +/* Did we have something to resend (ie the op-post has been feeded previously */ + +postlen = jk_b_get_len(op-post); +if (postlen AJP_HEADER_LEN) { if(!ajp_connection_tcp_send_message(ae, op-post, l)) { -jk_log(l, JK_LOG_ERROR, Error resending request body\n); +jk_log(l, JK_LOG_ERROR, Error resending request body (%d)\n, postlen); return JK_FALSE; } +else + jk_log(l, JK_LOG_DEBUG, Resent the request body (%d)\n, postlen); + } else { /* We never sent any POST data and we check if we have to send at @@ -1096,7 +1102,7 @@ /* || s-is_chunked - this can't be done here. The original protocol sends the first chunk of post data ( based on Content-Length ), and that's what the java side expects. -Sending this data for chunked would break other ajp13 serers. +Sending this data for chunked would break other ajp13 servers. Note that chunking will continue to work - using the normal read. */ @@ -1185,6 +1191,7 @@ jk_log(l, JK_LOG_INFO, ERROR reading POST data from client. Connection aborted or network problems\n); + return JK_CLIENT_ERROR; } break; @@ -1439,7 +1446,7 @@ p-worker-name, errno); } else { -jk_log(l, JK_LOG_ERROR, In jk_endpoint_t::service, NULL parameters\n); +jk_log(l, JK_LOG_ERROR, ajp: end of service with error\n); } return JK_FALSE; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
billbarker2004/01/25 15:51:41 Modified:jk/native/common jk_ajp_common.c Log: Correct cut-and-paste bug. Fix for Bug #26398 Submitted By: Rainer Jung [EMAIL PROTECTED] Revision ChangesPath 1.45 +2 -2 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.44 retrieving revision 1.45 diff -u -r1.44 -r1.45 --- jk_ajp_common.c 6 Jan 2004 21:44:20 - 1.44 +++ jk_ajp_common.c 25 Jan 2004 23:51:41 - 1.45 @@ -1565,7 +1565,7 @@ p-reply_timeout); p-prepost_timeout = -jk_get_worker_reply_timeout(props, p-name, AJP_DEF_PREPOST_TIMEOUT); +jk_get_worker_prepost_timeout(props, p-name, AJP_DEF_PREPOST_TIMEOUT); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting prepost timeout to %d\n, - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mmanders2004/01/06 13:44:20 Modified:jk/native/common jk_ajp_common.c Log: Fixed logic when attempting to reuse connections in ajp_send_request. If the send is successful, we needed to get out of the while loop. If the ping/pong or the request failed, try and reuse without getting out of the loop. Revision ChangesPath 1.44 +6 -2 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.43 retrieving revision 1.44 diff -u -r1.43 -r1.44 --- jk_ajp_common.c 5 Jan 2004 22:42:03 - 1.43 +++ jk_ajp_common.c 6 Jan 2004 21:44:20 - 1.44 @@ -1025,14 +1025,18 @@ err++; } +/* If we got an error or can't send data, then try to get a pooled */ +/* connection and try again. If we are succesful, break out of this */ +/* loop. */ if (err || ajp_connection_tcp_send_message(ae, op-request, l) == JK_FALSE) { jk_log(l, JK_LOG_INFO, Error sending request try another pooled connection\n); jk_close_socket(ae-sd); ae-sd = -1; ajp_reuse_connection(ae, l); - break; } +else +break; } /* - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mmanders2004/01/05 14:42:03 Modified:jk/native/common jk_ajp_common.c Log: Updated to build properly for NetWare with recent socket additions. Revision ChangesPath 1.43 +4 -1 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.42 retrieving revision 1.43 diff -u -r1.42 -r1.43 --- jk_ajp_common.c 5 Nov 2003 09:15:39 - 1.42 +++ jk_ajp_common.c 5 Jan 2004 22:42:03 - 1.43 @@ -72,6 +72,9 @@ #ifdef AS400 #include util_ebcdic.h #endif +#if defined(NETWARE) defined(__NOVELL_LIBC__) +#include novsock2.h +#endif const char *response_trans_headers[] = { - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h jk_ajp13.h
hgomez 2003/10/16 00:37:43 Modified:jk/native/common jk_ajp_common.c jk_ajp_common.h jk_ajp13.h Log: My latest patches to jk/ajp broke the AJP14 logon phase since I was using the PING message which ask container to take control for PING/PONG control. Created CPING/CPONG message instead ... Revision ChangesPath 1.41 +19 -19jakarta-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.40 retrieving revision 1.41 diff -u -r1.40 -r1.41 --- jk_ajp_common.c 4 Oct 2003 09:20:59 - 1.40 +++ jk_ajp_common.c 16 Oct 2003 07:37:42 - 1.41 @@ -661,7 +661,7 @@ int rc; FD_ZERO(rset); - FD_ZERO(eset); + FD_ZERO(eset); FD_SET(ae-sd, rset); FD_SET(ae-sd, eset); @@ -681,11 +681,11 @@ /* - * Handle the PING/PONG initial query + * Handle the CPING/CPONG initial query */ -int ajp_handle_ping_pong(ajp_endpoint_t *ae, - inttimeout, - jk_logger_t*l) +int ajp_handle_cping_cpong(ajp_endpoint_t *ae, +int timeout, + jk_logger_t*l) { int cmd; jk_msg_buf_t * msg; @@ -693,12 +693,12 @@ msg = jk_b_new(ae-pool); jk_b_set_buffer_size(msg, 16); /* 16 is way too large but I'm lazy :-) */ jk_b_reset(msg); - jk_b_append_byte(msg, AJP13_PING_REQUEST); + jk_b_append_byte(msg, AJP13_CPING_REQUEST); - /* Send Ping query */ + /* Send CPing query */ if (ajp_connection_tcp_send_message(ae, msg, l) != JK_TRUE) { - jk_log(l, JK_LOG_ERROR, Error ajp13:ping: can't send ping query\n); + jk_log(l, JK_LOG_ERROR, Error ajp13:cping: can't send cping query\n); return JK_FALSE; } @@ -706,7 +706,7 @@ */ if (ajp_is_input_event(ae, timeout, l) == JK_FALSE) { - jk_log(l, JK_LOG_ERROR, Error ajp13:ping: timeout in reply pong\n); + jk_log(l, JK_LOG_ERROR, Error ajp13:cping: timeout in reply pong\n); return JK_FALSE; } @@ -714,12 +714,12 @@ */ if (ajp_connection_tcp_get_message(ae, msg, l) != JK_TRUE) { - jk_log(l, JK_LOG_ERROR, Error ajp13:ping: awaited reply pong, not received\n); + jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, not received\n); return JK_FALSE; } - if ((cmd = jk_b_get_byte(msg)) != AJP13_PONG_REPLY) { - jk_log(l, JK_LOG_ERROR, Error ajp13:ping: awaited reply pong, received %d instead\n, cmd); + if ((cmd = jk_b_get_byte(msg)) != AJP13_CPONG_REPLY) { + jk_log(l, JK_LOG_ERROR, Error ajp13:cping: awaited reply cpong, received %d instead\n, cmd); return JK_FALSE; } @@ -746,9 +746,9 @@ if (ae-worker-logon != NULL) return (ae-worker-logon(ae, l)); - /* should we send a PING to validate connection ? */ + /* should we send a CPING to validate connection ? */ if (ae-worker-connect_timeout != 0) - return (ajp_handle_ping_pong(ae, ae-worker-connect_timeout, l)); + return (ajp_handle_cping_cpong(ae, ae-worker-connect_timeout, l)); return JK_TRUE; } @@ -1015,10 +1015,10 @@ { err = 0; - /* handle ping/pong before request if timeout is set */ + /* handle cping/cpong before request if timeout is set */ if (ae-worker-prepost_timeout != 0) { - if (ajp_handle_ping_pong(ae, ae-worker-prepost_timeout, l) == JK_FALSE) + if (ajp_handle_cping_cpong(ae, ae-worker-prepost_timeout, l) == JK_FALSE) err++; } @@ -1037,7 +1037,7 @@ */ if (ae-sd 0) { - /* no need to handle ping/pong here since it should be at connection time */ + /* no need to handle cping/cpong here since it should be at connection time */ if (ajp_connect_to_endpoint(ae, l) == JK_TRUE) { /* @@ -1521,7 +1521,7 @@ if (pThis pThis-worker_private) { ajp_worker_t *p = pThis-worker_private; -int cache_sz = jk_get_worker_cache_size(props, p-name, cache); +int cache_sz =
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
[EMAIL PROTECTED] a écrit : mturk 2003/10/04 02:20:59 Modified:jk/native/common jk_ajp_common.c Log: Normal C compiler doesn't allow to declare variables like C++ does. Revision ChangesPath 1.40 +15 -21jakarta-tomcat-connectors/jk/native/common/jk_ajp_common.c Thanks Mladen ;) - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2003/10/04 02:20:59 Modified:jk/native/common jk_ajp_common.c Log: Normal C compiler doesn't allow to declare variables like C++ does. Revision ChangesPath 1.40 +15 -21jakarta-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.39 retrieving revision 1.40 diff -u -r1.39 -r1.40 --- jk_ajp_common.c 25 Sep 2003 15:22:08 - 1.39 +++ jk_ajp_common.c 4 Oct 2003 09:20:59 - 1.40 @@ -661,6 +661,7 @@ int rc; FD_ZERO(rset); + FD_ZERO(eset); FD_SET(ae-sd, rset); FD_SET(ae-sd, eset); @@ -1520,56 +1521,49 @@ if (pThis pThis-worker_private) { ajp_worker_t *p = pThis-worker_private; -int cache_sz = jk_get_worker_cache_size(props, p-name, cache); -int socket_timeout = +int cache_sz = jk_get_worker_cache_size(props, p-name, cache); +p-socket_timeout = jk_get_worker_socket_timeout(props, p-name, AJP13_DEF_TIMEOUT); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting socket timeout to %d\n, - socket_timeout); + p-socket_timeout); -int socket_keepalive = +p-keepalive = jk_get_worker_socket_keepalive(props, p-name, JK_FALSE); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting socket keepalive to %d\n, - socket_keepalive); + p-keepalive); -int cache_timeout = +p-cache_timeout = jk_get_worker_cache_timeout(props, p-name, AJP_DEF_CACHE_TIMEOUT); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting cache timeout to %d\n, - cache_timeout); + p-cache_timeout); -int connect_timeout = +p-connect_timeout = jk_get_worker_connect_timeout(props, p-name, AJP_DEF_CONNECT_TIMEOUT); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting connect timeout to %d\n, - connect_timeout); + p-connect_timeout); -int reply_timeout = +p-reply_timeout = jk_get_worker_reply_timeout(props, p-name, AJP_DEF_REPLY_TIMEOUT); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting reply timeout to %d\n, -reply_timeout); +p-reply_timeout); -int prepost_timeout = +p-prepost_timeout = jk_get_worker_reply_timeout(props, p-name, AJP_DEF_PREPOST_TIMEOUT); jk_log(l, JK_LOG_DEBUG, In jk_worker_t::init, setting prepost timeout to %d\n, -prepost_timeout); +p-prepost_timeout); -p-socket_timeout = socket_timeout; -p-keepalive = socket_keepalive; -p-cache_timeout = cache_timeout; -p-connect_timeout = connect_timeout; -p-reply_timeout = reply_timeout; -p-prepost_timeout = prepost_timeout; - /* * Need to initialize secret here since we could return from inside * of the following loop - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
glenn 2003/07/15 05:15:18 Modified:jk/native/common jk_ajp_common.c Log: Add worker name to tomcat connection failure error message Revision ChangesPath 1.37 +3 -3 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.36 retrieving revision 1.37 diff -u -r1.36 -r1.37 --- jk_ajp_common.c 4 Apr 2003 13:27:43 - 1.36 +++ jk_ajp_common.c 15 Jul 2003 12:15:17 - 1.37 @@ -1317,8 +1317,8 @@ /* Log the error only once per failed request. */ jk_log(l, JK_LOG_ERROR, Error connecting to tomcat. Tomcat is probably not started - or is listening on the wrong port. Failed errno = %d\n, - errno); + or is listening on the wrong port. worker=%s failed errno = %d\n, + p-worker-name, errno); } else { jk_log(l, JK_LOG_ERROR, In jk_endpoint_t::service, NULL parameters\n); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
hgomez 2003/04/04 05:27:43 Modified:jk/native/common jk_ajp_common.c Log: Fix problem reported by bugzilla 18571... Revision ChangesPath 1.36 +2 -2 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.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- jk_ajp_common.c 14 Mar 2003 13:36:35 - 1.35 +++ jk_ajp_common.c 4 Apr 2003 13:27:43 - 1.36 @@ -1572,7 +1572,7 @@ unsigned elapsed = (unsigned)(now-ae-last_access); if (elapsed aw-cache_timeout) { jk_log(l, JK_LOG_DEBUG, -In jk_endpoint_t::ajp_get_endpoint, \ +In jk_endpoint_t::ajp_get_endpoint, cleaning cache slot = %d elapsed %d\n, i, elapsed); ajp_close_endpoint(aw-ep_cache[i], l); - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h
glenn 2003/03/14 05:36:35 Modified:jk/native CHANGES.txt jk/native/apache-2.0 mod_jk.c jk/native/common jk_ajp_common.c jk_ajp_common.h Log: Traced through the code to clean up error handling for when a client aborts a request. * The retry loop would continue to retry processing the request even if the client aborted. Fixed this. * If the client aborts set the aborted flag in the conn_rec * If the handler is invoked and the conn_rec aborted flag is set return an HTTP_INTERNAL_SERVER_ERROR instead of processing a request for an aborted client. * Setting the conn_rec aborted flag and checking it prevents mod_jk from passing on a request to Tomcat for processing when the client has aborted the connection. An HTML page could use SSI to invoke multiple servlet's or JSP pages during a single request. There is no need to continue processing these if the client has aborted the connection. There was a bug in get_content_length() which would cause a SSI of a page which gets procesed by Tomcat to fail if the original client request was a POST. Cleaned up and reformatted code to 80 columns in source code files I worked on. Revision ChangesPath 1.11 +8 -2 jakarta-tomcat-connectors/jk/native/CHANGES.txt Index: CHANGES.txt === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/CHANGES.txt,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- CHANGES.txt 28 Feb 2003 21:55:21 - 1.10 +++ CHANGES.txt 14 Mar 2003 13:36:35 - 1.11 @@ -11,7 +11,13 @@ let Apache handle processing the error returned by Tomcat. * Added the load balancer sticky_session property. If set to 0 requests with servlet SESSION ID's can be routed to any Tomcat - worker. Default is 1, sessions are sticky. + worker. Default is 1, sessions are sticky. [glenn] +* Cleaned up detection and reporting of aborted client connections. + This cleanup also makes sure that mod_jk does not pass any requests + on to Tomcat if the remote client aborted its connection. [glenn] +* Fixed a bug in Apache 2.0 which caused a POST request forwarded to + Tomcat to fail if it generated SSI directives which were post + processed by mod_include. [glenn] Changes with JK 1.2.2: * tomcat_trend.pl updated script to support changed logging of 1.67 +105 -105 jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c Index: mod_jk.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-2.0/mod_jk.c,v retrieving revision 1.66 retrieving revision 1.67 diff -u -r1.66 -r1.67 --- mod_jk.c 28 Feb 2003 17:58:39 - 1.66 +++ mod_jk.c 14 Mar 2003 13:36:35 - 1.67 @@ -103,14 +103,16 @@ #define __arpa_inet_h__ #define __sys_timeval_h__ #endif + +#include jk_ajp13.h #include jk_global.h -#include jk_util.h +#include jk_logger.h #include jk_map.h #include jk_pool.h #include jk_service.h -#include jk_worker.h #include jk_uri_worker_map.h -#include jk_logger.h +#include jk_util.h +#include jk_worker.h #define JK_WORKER_ID(jakarta.worker) #define JK_HANDLER (jakarta-servlet) @@ -233,59 +235,57 @@ const char * const *header_values, unsigned num_of_headers) { -if(s s-ws_private) { -unsigned h; -apache_private_data_t *p = s-ws_private; -request_rec *r = p-r; - -if(!reason) { -reason = ; -} -r-status = status; -r-status_line = apr_psprintf(r-pool, %d %s, status, reason); +unsigned h; +apache_private_data_t *p = s-ws_private; +request_rec *r = p-r; + +if(!reason) { +reason = ; +} +r-status = status; +r-status_line = apr_psprintf(r-pool, %d %s, status, reason); -for(h = 0 ; h num_of_headers ; h++) { -if(!strcasecmp(header_names[h], Content-type)) { -char *tmp = apr_pstrdup(r-pool, header_values[h]); -ap_content_type_tolower(tmp); -/* It should be done like this in Apache 2.0 */ -/* This way, Apache 2.0 will be able to set the output filter */ -/* and it make jk useable with deflate using AddOutputFilterByType DEFLATE text/html */ -ap_set_content_type(r, tmp); -} else if(!strcasecmp(header_names[h], Location)) { +for(h = 0 ; h num_of_headers ; h++) { +if(!strcasecmp(header_names[h], Content-type)) { +char *tmp =
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
costin 2003/02/17 08:24:31 Modified:jk/native/common jk_ajp_common.c Log: Added more info to the log - the return code. It may help debug problems. Revision ChangesPath 1.34 +17 -16jakarta-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.33 retrieving revision 1.34 diff -u -r1.33 -r1.34 --- jk_ajp_common.c 21 Nov 2002 17:53:48 - 1.33 +++ jk_ajp_common.c 17 Feb 2003 16:24:31 - 1.34 @@ -678,7 +678,7 @@ rc = jk_tcp_socket_recvfull(ae-sd, head, AJP_HEADER_LEN); if(rc 0) { -jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, network problems or tomcat is down.\n); +jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, network problems or tomcat is down. err=%d\n, rc); return JK_FALSE; } @@ -721,7 +721,7 @@ rc = jk_tcp_socket_recvfull(ae-sd, jk_b_get_buff(msg), msglen); if(rc 0) { -jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, network problems or tomcat is down\n); +jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, network problems or tomcat is down %d\n, rc); return JK_FALSE; } @@ -975,26 +975,27 @@ case JK_AJP13_GET_BODY_CHUNK: { -int len = (int)jk_b_get_int(msg); +int len = (int)jk_b_get_int(msg); +if(len 0) { +len = 0; +} if(len AJP13_MAX_SEND_BODY_SZ) { len = AJP13_MAX_SEND_BODY_SZ; } -if(len ae-left_bytes_to_send) { +if((unsigned int)len ae-left_bytes_to_send) { len = ae-left_bytes_to_send; } -if(len 0) { -len = 0; -} - -/* the right place to add file storage for upload */ -if ((len = ajp_read_into_msg_buff(ae, r, pmsg, len, l)) = 0) { -r-content_read += len; -return JK_AJP13_HAS_RESPONSE; -} -jk_log(l, JK_LOG_ERROR, ERROR reading POST data from client. Connection aborted or network problems\n); -return JK_INTERNAL_ERROR; +/* the right place to add file storage for upload */ +if ((len = ajp_read_into_msg_buff(ae, r, pmsg, len, l)) = 0) { +r-content_read += len; +return JK_AJP13_HAS_RESPONSE; +} + +jk_log(l, JK_LOG_ERROR, ERROR reading POST data from client. +Connection aborted or network problems\n); +return JK_INTERNAL_ERROR; } break; - To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
Glenn Nielsen wrote: Costin, Why were the log levels changed from LOG_ERROR to LOG_INFO, a connection failure to tomct is a real fatal error when handling a request. Shouldn't it be at the JK_LOG_ERROR level? It'll be logged at ERROR level - +jk_log(l, JK_LOG_ERROR, Error connecting to tomcat. Tomcat is probably not started or is listenning on the wrong port. Failed errno = %d\n, errno); + ( instead of the Can't find servlet handler :-) I just limited the number of messages that are logged at ERROR level for each failed connection, you should see a single error message. If you want more verbosity - you'll get it as info. Costin Regards, Glenn [EMAIL PROTECTED] wrote: costin 2002/10/30 14:12:20 Modified:jk/native/common jk_ajp_common.c jk_connect.c Log: More trimming for error messages. Now only one line ( and hopefully more informative ) is displayed if we can't send the request to tomcat. Revision ChangesPath 1.32 +11 -5 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.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- jk_ajp_common.c30 Oct 2002 21:17:34 - 1.31 +++ jk_ajp_common.c30 Oct 2002 22:12:20 - 1.32 @@ -623,7 +623,9 @@ } } -jk_log(l, JK_LOG_ERROR, ERROR connecting to tomcat. Tomcat is probably not started. Failed errno = %d\n, errno); +jk_log(l, JK_LOG_INFO, + Error connecting to tomcat. Tomcat is probably not started or is listenning on the wrong port. Failed errno = %d\n, + errno); return JK_FALSE; } @@ -869,7 +871,7 @@ return JK_FALSE; } } else { -jk_log(l, JK_LOG_ERROR, Error connecting to the Tomcat process.\n); +jk_log(l, JK_LOG_INFO, Error connecting to the Tomcat process.\n); return JK_FALSE; } } @@ -1175,15 +1177,19 @@ return JK_FALSE; } -jk_log(l, JK_LOG_ERROR, ERRORO: Receiving from tomcat failed, recoverable operation. err=%d\n, i); +jk_log(l, JK_LOG_ERROR, ERROR: Receiving from tomcat failed, recoverable operation. err=%d\n, i); } else -jk_log(l, JK_LOG_ERROR, ERROR: sending request to tomcat failed in send loop. err=%d\n, i); +jk_log(l, JK_LOG_INFO, sending request to tomcat failed in send loop. err=%d\n, i); jk_close_socket(p-sd); p-sd = -1; ajp_reuse_connection(p, l); } + +/* Log the error only once per failed request. */ +jk_log(l, JK_LOG_ERROR, Error connecting to tomcat. Tomcat is probably not started or is listenning on the wrong port. Failed errno = %d\n, errno); + } else { jk_log(l, JK_LOG_ERROR, In jk_endpoint_t::service, NULL parameters\n); } 1.6 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_connect.c Index: jk_connect.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_connect.c 4 Sep 2002 11:31:33 - 1.5 +++ jk_connect.c 30 Oct 2002 22:12:20 - 1.6 @@ -174,7 +174,7 @@ jk_log(l, JK_LOG_DEBUG, jk_open_socket, return, sd = %d\n, sock); return sock; } -jk_log(l, JK_LOG_ERROR, jk_open_socket, connect() failed errno = %d\n, errno); +jk_log(l, JK_LOG_INFO, jk_open_socket, connect() failed errno = %d\n, errno); jk_close_socket(sock); } else { #ifdef WIN32 -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED] -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
Re: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
[EMAIL PROTECTED] wrote: costin 2002/11/21 09:53:48 Modified:jk/native/common jk_ajp_common.c Log: Do not send the initial chunk for chunked encoding ( only for regular POST ). Ajp13 servers ( tomcat x.y, etc ) expect this initial chunk only if a content-length is specified. ( this is just an initial fix - I still need to test various cases ) Revision ChangesPath 1.33 +10 -3 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.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- jk_ajp_common.c 30 Oct 2002 22:12:20 - 1.32 +++ jk_ajp_common.c 21 Nov 2002 17:53:48 - 1.33 @@ -808,7 +808,7 @@ } if (!r-is_chunked) { -ae-left_bytes_to_send -= len; + ae-left_bytes_to_send -= len; } if (len 0) { @@ -905,7 +905,14 @@ * for resend if the remote Tomcat is down, a fact we will learn only * doing a read (not yet) */ -if (s-is_chunked || ae-left_bytes_to_send 0) { + /* || s-is_chunked - this can't be done here. The original protocol sends the first + chunk of post data ( based on Content-Length ), and that's what the java side expects. + Sending this data for chunked would break other ajp13 serers. + + Note that chunking will continue to work - using the normal read. + */ + +if (ae-left_bytes_to_send 0) { int len = ae-left_bytes_to_send; if (len AJP13_MAX_SEND_BODY_SZ) len = AJP13_MAX_SEND_BODY_SZ; Costin was faster than me ;) -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
costin 2002/11/21 09:53:48 Modified:jk/native/common jk_ajp_common.c Log: Do not send the initial chunk for chunked encoding ( only for regular POST ). Ajp13 servers ( tomcat x.y, etc ) expect this initial chunk only if a content-length is specified. ( this is just an initial fix - I still need to test various cases ) Revision ChangesPath 1.33 +10 -3 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.32 retrieving revision 1.33 diff -u -r1.32 -r1.33 --- jk_ajp_common.c 30 Oct 2002 22:12:20 - 1.32 +++ jk_ajp_common.c 21 Nov 2002 17:53:48 - 1.33 @@ -808,7 +808,7 @@ } if (!r-is_chunked) { -ae-left_bytes_to_send -= len; + ae-left_bytes_to_send -= len; } if (len 0) { @@ -905,7 +905,14 @@ * for resend if the remote Tomcat is down, a fact we will learn only * doing a read (not yet) */ -if (s-is_chunked || ae-left_bytes_to_send 0) { + /* || s-is_chunked - this can't be done here. The original protocol sends the first +chunk of post data ( based on Content-Length ), and that's what the java side expects. +Sending this data for chunked would break other ajp13 serers. + +Note that chunking will continue to work - using the normal read. + */ + +if (ae-left_bytes_to_send 0) { int len = ae-left_bytes_to_send; if (len AJP13_MAX_SEND_BODY_SZ) len = AJP13_MAX_SEND_BODY_SZ; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_lb_worker.c
costin 2002/10/30 13:17:34 Modified:jk/native/common jk_ajp_common.c jk_lb_worker.c Log: Change some of the important messages to a more readable format. Revision ChangesPath 1.31 +17 -17jakarta-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.30 retrieving revision 1.31 diff -u -r1.30 -r1.31 --- jk_ajp_common.c 20 Sep 2002 11:28:16 - 1.30 +++ jk_ajp_common.c 30 Oct 2002 21:17:34 - 1.31 -623,7 +623,7 } } -jk_log(l, JK_LOG_ERROR, In jk_endpoint_t::ajp_connect_to_endpoint, failed errno = %d\n, errno); +jk_log(l, JK_LOG_ERROR, ERROR connecting to tomcat. Tomcat is probably not started. Failed errno = %d\n, errno); return JK_FALSE; } -676,7 +676,7 rc = jk_tcp_socket_recvfull(ae-sd, head, AJP_HEADER_LEN); if(rc 0) { -jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed\n); +jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, network problems or tomcat is down.\n); return JK_FALSE; } -719,7 +719,7 rc = jk_tcp_socket_recvfull(ae-sd, jk_b_get_buff(msg), msglen); if(rc 0) { -jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed\n); +jk_log(l, JK_LOG_ERROR, ERROR: can't receive the response message from tomcat, network problems or tomcat is down\n); return JK_FALSE; } -801,7 +801,7 } if ((len = ajp_read_fully_from_server(r, read_buf, len)) 0) { -jk_log(l, JK_LOG_ERROR, ajp_read_into_msg_buff: Error - ajp_read_fully_from_server failed\n); +jk_log(l, JK_LOG_ERROR, ERROR: receiving data from server failed, the client aborted the connection or network errors.\n); return -1; } -849,7 +849,7 * First try to reuse open connections... */ while ((ae-sd 0) ! ajp_connection_tcp_send_message(ae, op-request, l)) { -jk_log(l, JK_LOG_ERROR, Error sending request try another pooled connection\n); +jk_log(l, JK_LOG_INFO, Error sending request try another pooled connection\n); jk_close_socket(ae-sd); ae-sd = -1; ajp_reuse_connection(ae, l); -865,7 +865,7 * have is probably unrecoverable */ if (!ajp_connection_tcp_send_message(ae, op-request, l)) { -jk_log(l, JK_LOG_ERROR, Error sending request on a fresh connection\n); +jk_log(l, JK_LOG_INFO, Error sending request on a fresh connection\n); return JK_FALSE; } } else { -958,7 +958,7 { unsigned len = (unsigned)jk_b_get_int(msg); if(!r-write(r, jk_b_get_buff(msg) + jk_b_get_pos(msg), len)) { -jk_log(l, JK_LOG_ERROR, Error ajp_process_callback - write failed\n); +jk_log(l, JK_LOG_ERROR, ERROR sending data to client. Connection aborted or network problems\n); return JK_CLIENT_ERROR; } } -984,7 +984,7 return JK_AJP13_HAS_RESPONSE; } -jk_log(l, JK_LOG_ERROR, Error ajp_process_callback - ajp_read_into_msg_buff failed\n); +jk_log(l, JK_LOG_ERROR, ERROR reading POST data from client. Connection aborted or network problems\n); return JK_INTERNAL_ERROR; } break; -1038,7 +1038,7 int rc = 0; if(!ajp_connection_tcp_get_message(p, op-reply, l)) { -jk_log(l, JK_LOG_ERROR, Error reading reply\n); +jk_log(l, JK_LOG_ERROR, Error reading reply from tomcat. Tomcat is down or network problems.\n); /* we just can't recover, unset recover flag */ return JK_FALSE; } -1061,7 +1061,7 op-recoverable = JK_FALSE; rc = ajp_connection_tcp_send_message(p, op-post, l); if (rc 0) { -jk_log(l, JK_LOG_ERROR, Error sending request data %d\n, rc); +jk_log(l, JK_LOG_ERROR, Error sending request data %d. Tomcat is down or network problems.\n, rc); return JK_FALSE; } } else if(JK_FATAL_ERROR == rc) { -1154,7 +1154,7 */ if (! op-recoverable) { *is_recoverable_error = JK_FALSE; -jk_log(l, JK_LOG_ERROR, In jk_endpoint_t::service, ajp_send_request failed without recovery in send loop %d\n, i); +
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_connect.c
costin 2002/10/30 14:12:20 Modified:jk/native/common jk_ajp_common.c jk_connect.c Log: More trimming for error messages. Now only one line ( and hopefully more informative ) is displayed if we can't send the request to tomcat. Revision ChangesPath 1.32 +11 -5 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.31 retrieving revision 1.32 diff -u -r1.31 -r1.32 --- jk_ajp_common.c 30 Oct 2002 21:17:34 - 1.31 +++ jk_ajp_common.c 30 Oct 2002 22:12:20 - 1.32 -623,7 +623,9 } } -jk_log(l, JK_LOG_ERROR, ERROR connecting to tomcat. Tomcat is probably not started. Failed errno = %d\n, errno); +jk_log(l, JK_LOG_INFO, + Error connecting to tomcat. Tomcat is probably not started or is listenning on the wrong port. Failed errno = %d\n, + errno); return JK_FALSE; } -869,7 +871,7 return JK_FALSE; } } else { -jk_log(l, JK_LOG_ERROR, Error connecting to the Tomcat process.\n); +jk_log(l, JK_LOG_INFO, Error connecting to the Tomcat process.\n); return JK_FALSE; } } -1175,15 +1177,19 return JK_FALSE; } -jk_log(l, JK_LOG_ERROR, ERRORO: Receiving from tomcat failed, recoverable operation. err=%d\n, i); +jk_log(l, JK_LOG_ERROR, ERROR: Receiving from tomcat failed, recoverable operation. err=%d\n, i); } else -jk_log(l, JK_LOG_ERROR, ERROR: sending request to tomcat failed in send loop. err=%d\n, i); +jk_log(l, JK_LOG_INFO, sending request to tomcat failed in send loop. err=%d\n, i); jk_close_socket(p-sd); p-sd = -1; ajp_reuse_connection(p, l); } + +/* Log the error only once per failed request. */ +jk_log(l, JK_LOG_ERROR, Error connecting to tomcat. Tomcat is probably not started or is listenning on the wrong port. Failed errno = %d\n, errno); + } else { jk_log(l, JK_LOG_ERROR, In jk_endpoint_t::service, NULL parameters\n); } 1.6 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_connect.c Index: jk_connect.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_connect.c,v retrieving revision 1.5 retrieving revision 1.6 diff -u -r1.5 -r1.6 --- jk_connect.c 4 Sep 2002 11:31:33 - 1.5 +++ jk_connect.c 30 Oct 2002 22:12:20 - 1.6 -174,7 +174,7 jk_log(l, JK_LOG_DEBUG, jk_open_socket, return, sd = %d\n, sock); return sock; } -jk_log(l, JK_LOG_ERROR, jk_open_socket, connect() failed errno = %d\n, errno); +jk_log(l, JK_LOG_INFO, jk_open_socket, connect() failed errno = %d\n, errno); jk_close_socket(sock); } else { #ifdef WIN32 -- To unsubscribe, e-mail: mailto:tomcat-dev-unsubscribe;jakarta.apache.org For additional commands, e-mail: mailto:tomcat-dev-help;jakarta.apache.org
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
costin 2002/07/02 09:51:08 Modified:jk/native/common jk_ajp_common.c Log: Add more info to the message. Revision ChangesPath 1.27 +3 -2 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.26 retrieving revision 1.27 diff -u -r1.26 -r1.27 --- jk_ajp_common.c 25 Jun 2002 07:08:03 - 1.26 +++ jk_ajp_common.c 2 Jul 2002 16:51:08 - 1.27 @@ -684,7 +684,8 @@ msglen += (head[3] 0xFF); if(msglen jk_b_get_size(msg)) { -jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: Error - Wrong message size\n); +jk_log(l, JK_LOG_ERROR, ajp_connection_tcp_get_message: Error - Wrong message size %d %d\n, + msglen, jk_b_get_size(msg)); return JK_FALSE; } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mturk 2002/06/25 00:08:03 Modified:jk/native/common jk_ajp_common.c Log: Introduced socket and cache timeout. By Jan Singer, Henri Gomez and Mladen Turk. Revision ChangesPath 1.26 +376 -334 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.25 retrieving revision 1.26 diff -u -r1.25 -r1.26 --- jk_ajp_common.c 10 May 2002 23:58:40 - 1.25 +++ jk_ajp_common.c 25 Jun 2002 07:08:03 - 1.26 @@ -115,23 +115,23 @@ } else if(0 == strcmp(method, TRACE)) { *sc = SC_M_TRACE; } else if(0 == strcmp(method, PROPFIND)) { - *sc = SC_M_PROPFIND; +*sc = SC_M_PROPFIND; } else if(0 == strcmp(method, PROPPATCH)) { - *sc = SC_M_PROPPATCH; +*sc = SC_M_PROPPATCH; } else if(0 == strcmp(method, MKCOL)) { - *sc = SC_M_MKCOL; +*sc = SC_M_MKCOL; } else if(0 == strcmp(method, COPY)) { - *sc = SC_M_COPY; +*sc = SC_M_COPY; } else if(0 == strcmp(method, MOVE)) { - *sc = SC_M_MOVE; +*sc = SC_M_MOVE; } else if(0 == strcmp(method, LOCK)) { - *sc = SC_M_LOCK; +*sc = SC_M_LOCK; } else if(0 == strcmp(method, UNLOCK)) { - *sc = SC_M_UNLOCK; +*sc = SC_M_UNLOCK; } else if(0 == strcmp(method, ACL)) { - *sc = SC_M_ACL; +*sc = SC_M_ACL; } else if(0 == strcmp(method, REPORT)) { - *sc = SC_M_REPORT; +*sc = SC_M_REPORT; } else if(0 == strcmp(method, VERSION-CONTROL)) { *sc = SC_M_VERSION_CONTROL; } else if(0 == strcmp(method, CHECKIN)) { @@ -263,7 +263,7 @@ ?ssl_cert (byte)(string) ?ssl_cipher(byte)(string) ?ssl_session (byte)(string) -?ssl_key_size (byte)(int) via JkOptions +ForwardKeySize +?ssl_key_size (byte)(int) via JkOptions +ForwardKeySize request_terminator (byte) ?body content_length*(var binary) @@ -442,10 +442,10 @@ static int ajp_unmarshal_response(jk_msg_buf_t *msg, jk_res_data_t *d, - ajp_endpoint_t *ae, + ajp_endpoint_t *ae, jk_logger_t*l) { - jk_pool_t * p = ae-pool; +jk_pool_t * p = ae-pool; d-status = jk_b_get_int(msg); @@ -533,16 +533,16 @@ void ajp_close_endpoint(ajp_endpoint_t *ae, jk_logger_t*l) { - jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint\n); +jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint\n); ajp_reset_endpoint(ae); jk_close_pool((ae-pool)); if (ae-sd 0) { jk_close_socket(ae-sd); - jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint, closed sd = %d\n, ae-sd); - ae-sd = -1; /* just to avoid twice close */ - } +jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint, closed sd = %d\n, ae-sd); +ae-sd = -1; /* just to avoid twice close */ +} free(ae); } @@ -584,20 +584,22 @@ unsigned attempt; for(attempt = 0 ; attempt ae-worker-connect_retry_attempts ; attempt++) { -ae-sd = jk_open_socket(ae-worker-worker_inet_addr, JK_TRUE, l); +ae-sd = jk_open_socket(ae-worker-worker_inet_addr, JK_TRUE, ae-worker-keepalive, l); if(ae-sd = 0) { jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_connect_to_endpoint, connected sd = %d\n, ae-sd); - /* Check if we must execute a logon after the physical connect */ - if (ae-worker-logon != NULL) - return (ae-worker-logon(ae, l)); + /* set last_access */ + ae-last_access = time(NULL); +/* Check if we must execute a logon after the physical connect */ +if (ae-worker-logon != NULL) +return (ae-worker-logon(ae, l)); - return JK_TRUE; +return JK_TRUE; } } jk_log(l, JK_LOG_ERROR, In jk_endpoint_t::ajp_connect_to_endpoint, failed errno = %d\n, errno); - return JK_FALSE; +return JK_FALSE; } /* @@ -608,18 +610,18 @@ jk_msg_buf_t *msg, jk_logger_t*l) { - if (ae-proto == AJP13_PROTO) { - jk_b_end(msg, AJP13_WS_HEADER); - jk_dump_buff(l, JK_LOG_DEBUG, sending to ajp13, msg); - } - else if (ae-proto == AJP14_PROTO) { - jk_b_end(msg, AJP14_WS_HEADER); -
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
costin 02/05/10 16:58:40 Modified:jk/native/common jk_ajp_common.c Log: Add a debug message if the connection is not reused. Revision ChangesPath 1.25 +14 -11jakarta-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.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- jk_ajp_common.c 13 Feb 2002 01:07:18 - 1.24 +++ jk_ajp_common.c 10 May 2002 23:58:40 - 1.25 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.24 $ * + * Version: $Revision: 1.25 $ * ***/ @@ -455,8 +455,9 @@ } d-msg = (char *)jk_b_get_string(msg); -if (d-msg) +if (d-msg) { jk_xlate_from_ascii(d-msg, strlen(d-msg)); +} jk_log(l, JK_LOG_DEBUG, ajp_unmarshal_response: status = %d\n, d-status); @@ -756,7 +757,7 @@ static int ajp_read_into_msg_buff(ajp_endpoint_t *ae, jk_ws_service_t *r, jk_msg_buf_t*msg, - unsigned len, + int len, jk_logger_t *l) { unsigned char *read_buf = jk_b_get_buff(msg); @@ -875,7 +876,7 @@ * doing a read (not yet) */ if (s-is_chunked || ae-left_bytes_to_send 0) { - unsigned len = ae-left_bytes_to_send; + int len = ae-left_bytes_to_send; if (len AJP13_MAX_SEND_BODY_SZ) len = AJP13_MAX_SEND_BODY_SZ; if ((len = ajp_read_into_msg_buff(ae, s, op-post, len, l)) 0) { @@ -937,7 +938,7 @@ case JK_AJP13_GET_BODY_CHUNK: { - unsigned len = (unsigned)jk_b_get_int(msg); + int len = (int)jk_b_get_int(msg); if(len AJP13_MAX_SEND_BODY_SZ) { len = AJP13_MAX_SEND_BODY_SZ; @@ -963,13 +964,16 @@ case JK_AJP13_END_RESPONSE: { ae-reuse = (int)jk_b_get_byte(msg); - -if((ae-reuse 0X01) != ae-reuse) { + +if( ! ae-reuse ) { /* * Strange protocol error. */ +jk_log(l, JK_LOG_DEBUG, Reuse: %d\n, ae-reuse ); ae-reuse = JK_FALSE; } +/* Reuse in all cases */ +ae-reuse = JK_TRUE; } return JK_AJP13_END_RESPONSE; break; @@ -1304,8 +1308,6 @@ int JK_METHOD ajp_done(jk_endpoint_t **e, jk_logger_t*l) { -jk_log(l, JK_LOG_DEBUG, Into jk_endpoint_t::done\n); - if (e *e (*e)-endpoint_private) { ajp_endpoint_t *p = (*e)-endpoint_private; int reuse_ep = p-reuse; @@ -1328,12 +1330,13 @@ } JK_LEAVE_CS(w-cs, rc); if(i w-ep_cache_sz) { -return JK_TRUE; +jk_log(l, JK_LOG_DEBUG, Into jk_endpoint_t::done, recycling connection\n); +return JK_TRUE; } } } } - +jk_log(l, JK_LOG_DEBUG, Into jk_endpoint_t::done, closing connection %d\n, reuse_ep); ajp_close_endpoint(p, l); *e = NULL; -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
mmanders02/02/12 17:07:18 Modified:jk/native/common jk_ajp_common.c Log: Initialize secret before checking cache since we might return from inside of the cache checking loop. Revision ChangesPath 1.24 +9 -2 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.23 retrieving revision 1.24 diff -u -r1.23 -r1.24 --- jk_ajp_common.c 6 Feb 2002 19:11:23 - 1.23 +++ jk_ajp_common.c 13 Feb 2002 01:07:18 - 1.24 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.23 $ * + * Version: $Revision: 1.24 $ * ***/ @@ -1235,6 +1235,14 @@ if (pThis pThis-worker_private) { ajp_worker_t *p = pThis-worker_private; int cache_sz = jk_get_worker_cache_size(props, p-name, cache); + +/* + * Need to initialize secret here since we could return from inside + * of the following loop + */ + +p-secret = jk_get_worker_secret(props, p-name ); + if (cache_sz 0) { p-ep_cache = (ajp_endpoint_t **)malloc(sizeof(ajp_endpoint_t *) * cache_sz); if(p-ep_cache) { @@ -1249,7 +1257,6 @@ } } } -p-secret = jk_get_worker_secret(props, p-name ); } else { jk_log(l, JK_LOG_ERROR, In jk_worker_t::init, NULL parameters\n); } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h jk_service.h jk_util.c jk_util.h
costin 02/02/06 11:11:23 Modified:jk/native/common jk_ajp_common.c jk_ajp_common.h jk_service.h jk_util.c jk_util.h Log: Implementation of the 'secret' attribute in the request, used to pass a key used to authenticate the sender. This shouldn't affect in any way the current code - as long as the secret attribute is not set on the worker, the code will behave exactly as before and work with any tomcat from 3.2 to 4.1. If the attribute is set, the attribute will be sent - the receiving side should know how to deal with it, that means it should use a recent version of jk. On the java side, the new versions of jk will allow setting the key - that will require any web server to send the password in order to allow forwarding the request. The check will happen once per tcp connection. Revision ChangesPath 1.23 +13 -3 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.22 retrieving revision 1.23 diff -u -r1.22 -r1.23 --- jk_ajp_common.c 17 Dec 2001 15:29:38 - 1.22 +++ jk_ajp_common.c 6 Feb 2002 19:11:23 - 1.23 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.22 $ * + * Version: $Revision: 1.23 $ * ***/ @@ -272,7 +272,7 @@ static int ajp_marshal_into_msgb(jk_msg_buf_t*msg, jk_ws_service_t *s, jk_logger_t *l, - ajp_endpoint_t *ae) + ajp_endpoint_t *ae) { unsigned char method; unsigned i; @@ -320,6 +320,15 @@ } } +if (s-secret) { +if (jk_b_append_byte(msg, SC_A_SECRET) || +jk_b_append_string(msg, s-secret)) { +jk_log(l, JK_LOG_ERROR, + Error ajp_marshal_into_msgb - Error appending secret\n); +return JK_FALSE; +} +} + if (s-remote_user) { if (jk_b_append_byte(msg, SC_A_REMOTE_USER) || jk_b_append_string(msg, s-remote_user)) { @@ -384,7 +393,6 @@ } } - if (s-num_attributes 0) { for (i = 0 ; i s-num_attributes ; i++) { if (jk_b_append_byte(msg, SC_A_REQ_ATTRIBUTE) || @@ -1087,6 +1095,7 @@ p-reuse = JK_FALSE; *is_recoverable_error = JK_TRUE; +s-secret = p-worker-secret; /* * We get here initial request (in reqmsg) */ @@ -1240,6 +1249,7 @@ } } } +p-secret = jk_get_worker_secret(props, p-name ); } else { jk_log(l, JK_LOG_ERROR, In jk_worker_t::init, NULL parameters\n); } 1.14 +8 -4 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.13 retrieving revision 1.14 diff -u -r1.13 -r1.14 --- jk_ajp_common.h 4 Dec 2001 19:44:23 - 1.13 +++ jk_ajp_common.h 6 Feb 2002 19:11:23 - 1.14 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocol ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.13 $ * + * Version: $Revision: 1.14 $ * ***/ #ifndef JK_AJP_COMMON_H @@ -88,6 +88,7 @@ #define SC_A_SSL_SESSION(unsigned char)9 #define SC_A_REQ_ATTRIBUTE (unsigned char)10 #define SC_A_SSL_KEY_SIZE (unsigned char)11/* only in if JkOptions +ForwardKeySize */ +#define SC_A_SECRET (unsigned char)12 #define SC_A_ARE_DONE (unsigned char)0xFF /* @@ -253,9 +254,12 @@ unsigned ep_cache_sz; ajp_endpoint_t **ep_cache; - int proto; /* PROTOCOL USED AJP13/AJP14 */ - - jk_login_service_t *login; +int
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
seguin 01/12/17 07:29:38 Modified:jk/native/common jk_ajp_common.c Log: actually send post data beyond the first ~8K to the servlet container. if a client request contains post data, the first chunk of it is sent to the container directly after the forward request is sent. if not all of the data fits in the first chunk, the container will get subsequent chunks by sending the connector a GET_BODY_CHUNK message. this checkin fixes the reponse to the GET_BODY_CHUNK message so that the connector will sent the container more post data. i believe this also fixes bug 4223. PR: 4223 Revision ChangesPath 1.22 +2 -2 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.21 retrieving revision 1.22 diff -u -r1.21 -r1.22 --- jk_ajp_common.c 2001/12/04 19:44:23 1.21 +++ jk_ajp_common.c 2001/12/17 15:29:38 1.22 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.21 $ * + * Version: $Revision: 1.22 $ * ***/ @@ -942,7 +942,7 @@ } /* the right place to add file storage for upload */ - if ((len = ajp_read_into_msg_buff(ae, r, msg, len, l)) = 0) { + if ((len = ajp_read_into_msg_buff(ae, r, pmsg, len, l)) = 0) { r-content_read += len; return JK_AJP13_HAS_RESPONSE; } -- To unsubscribe, e-mail: mailto:[EMAIL PROTECTED] For additional commands, e-mail: mailto:[EMAIL PROTECTED]
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
costin 01/11/16 22:08:20 Modified:jk/native/common jk_ajp_common.c Log: The big commit - plugin in the new socket code. All is #ifdef-ed by now - the old code is compiled by default, unmodified ( except some ifs that I reversed to be able to read and minor indentations). Probably this will remain this way until we are comfortable with the new abstraction - then we can remove the old code and the ifdefs. So far I can run it without problems. One big issue is the code that recycles the connection - I'm very comfused, it seems that besides recycling the endpoint we have some code that is doing some tricks with the sockets. From the comments it seems to be dealing with lb - but the lb worker has it's own mechanism to get another endpoint if one fails. I've also got a core on high load ( but very hard to reproduce ) and it happens in the reuse_connection - I added a check, but not sure why the worker would be null in the endpoint. What's more important is finding if we need this extra attempt to reuse ( or recover from endpoint errors ), closing the socket and reopening again could be a better solution ( if tomcat was restarted, all sockets will be invalid, so reuse_connection couldn't help in any way ). Revision ChangesPath 1.19 +328 -210 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.18 retrieving revision 1.19 diff -u -r1.18 -r1.19 --- jk_ajp_common.c 2001/11/06 00:15:07 1.18 +++ jk_ajp_common.c 2001/11/17 06:08:20 1.19 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.18 $ * + * Version: $Revision: 1.19 $ * ***/ @@ -69,6 +69,8 @@ #include jk_ajp14.h #include jk_ajp_common.h #include jk_connect.h +#include jk_channel.h +#include jk_env.h const char *response_trans_headers[] = { @@ -524,30 +526,38 @@ void ajp_close_endpoint(ajp_endpoint_t *ae, jk_logger_t*l) { - jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint\n); +jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint\n); ajp_reset_endpoint(ae); jk_close_pool((ae-pool)); +#ifdef CHANNEL +{ + jk_channel_t *channel=ae-worker-worker.channel; + int err=channel-close( channel, ae-endpoint ); +} +#else if (ae-sd 0) { -jk_close_socket(ae-sd); - jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint, closed sd = %d\n, ae-sd); - ae-sd = -1; /* just to avoid twice close */ - } + jk_close_socket(ae-sd); + jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_close_endpoint, closed sd = %d\n, ae-sd); + ae-sd = -1; /* just to avoid twice close */ +} +#endif free(ae); } - +#ifndef CHANNEL /* * Try to reuse a previous connection */ - static void ajp_reuse_connection(ajp_endpoint_t *ae, jk_logger_t*l) { ajp_worker_t *aw = ae-worker; - + +if (aw==NULL ) +return; if (aw-ep_cache_sz) { int rc; JK_ENTER_CS(aw-cs, rc); @@ -567,6 +577,7 @@ } } } +#endif int ajp_connect_to_endpoint(ajp_endpoint_t *ae, @@ -575,20 +586,26 @@ unsigned attempt; for(attempt = 0 ; attempt ae-worker-connect_retry_attempts ; attempt++) { +#ifdef CHANNEL + jk_channel_t *channel=ae-worker-worker.channel; +int err=channel-open( channel, ae-endpoint ); + jk_log(l, JK_LOG_DEBUG, ajp_connect_to_endpoint: connected %lx\n, ae-endpoint ); + if( err == JK_TRUE ) { +#else ae-sd = jk_open_socket(ae-worker-worker_inet_addr, JK_TRUE, l); if(ae-sd = 0) { jk_log(l, JK_LOG_DEBUG, In jk_endpoint_t::ajp_connect_to_endpoint, connected sd = %d\n, ae-sd); - - /* Check if we must execute a logon after the physical connect */ - if (ae-worker-logon != NULL) - return (ae-worker-logon(ae, l)); - - return JK_TRUE; +#endif + /* Check if we must execute a logon after the physical connect */ + if (ae-worker-logon != NULL) + return (ae-worker-logon(ae, l)); + + return JK_TRUE;
RE: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_global.h jk_md5.c
Excellent works ! Now AS/400 users will be able to play with the jakarta-tomcat-connectors mod_jk :) - Henri Gomez ___[_] EMAIL : [EMAIL PROTECTED](. .) PGP KEY : 697ECEDD...oOOo..(_)..oOOo... PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Wednesday, October 31, 2001 3:03 PM To: [EMAIL PROTECTED] Subject: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_global.h jk_md5.c jfclere 01/10/31 06:03:23 Modified:jk/native/apache-1.3 mod_jk.c jk/native/common jk_ajp_common.c jk_global.h jk_md5.c Log: Add support for BS2000 and finish EBCDIC support. Revision ChangesPath 1.20 +3 -3 jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c Index: mod_jk.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- mod_jk.c 2001/10/05 21:52:08 1.19 +++ mod_jk.c 2001/10/31 14:03:22 1.20 @@ -61,14 +61,14 @@ * Author: Gal Shachor [EMAIL PROTECTED] * * Dan Milstein [EMAIL PROTECTED] * * Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.19 $ * + * Version: $Revision: 1.20 $ * *** / /* * mod_jk: keeps all servlet/jakarta related ramblings together. */ -#include ap_config.h +/* #include ap_config.h */ #include httpd.h #include http_config.h #include http_request.h @@ -79,7 +79,7 @@ #include util_script.h #include util_date.h #include http_conf_globals.h - + /* * Jakarta (jk_) include files */ 1.17 +9 -1 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.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- jk_ajp_common.c 2001/10/13 17:36:36 1.16 +++ jk_ajp_common.c 2001/10/31 14:03:22 1.17 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.16 $ * + * Version: $Revision: 1.17 $ * *** / @@ -447,6 +447,8 @@ } d-msg = (char *)jk_b_get_string(msg); +if (d-msg) +jk_xlate_from_ascii(d-msg, strlen(d-msg)); jk_log(l, JK_LOG_DEBUG, ajp_unmarshal_response: status = %d\n, d-status); @@ -479,6 +481,9 @@ jk_log(l, JK_LOG_ERROR, Error ajp_unmarshal_response - Null header name\n); return JK_FALSE; } +jk_xlate_from_ascii(d-header_names[i], + strlen(d-header_names[i])); + } d-header_values[i] = (char *)jk_b_get_string(msg); @@ -486,6 +491,9 @@ jk_log(l, JK_LOG_ERROR, Error ajp_unmarshal_response - Null header value\n); return JK_FALSE; } + +jk_xlate_from_ascii(d-header_values[i], + strlen(d-header_values[i])); jk_log(l, JK_LOG_DEBUG, ajp_unmarshal_response: Header[%d] [%s] = [%s]\n, i, 1.12 +4 -2 jakarta-tomcat-connectors/jk/native/common/jk_global.h Index: jk_global.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_global.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- jk_global.h 2001/10/26 14:02:18 1.11 +++ jk_global.h 2001/10/31 14:03:22 1.12 @@ -59,7 +59,7 @@ * Description: Global definitions and include files that should exist * * anywhere * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.11 $ * + * Version: $Revision: 1.12
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_global.h jk_md5.c
jfclere 01/10/31 06:03:23 Modified:jk/native/apache-1.3 mod_jk.c jk/native/common jk_ajp_common.c jk_global.h jk_md5.c Log: Add support for BS2000 and finish EBCDIC support. Revision ChangesPath 1.20 +3 -3 jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c Index: mod_jk.c === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c,v retrieving revision 1.19 retrieving revision 1.20 diff -u -r1.19 -r1.20 --- mod_jk.c 2001/10/05 21:52:08 1.19 +++ mod_jk.c 2001/10/31 14:03:22 1.20 @@ -61,14 +61,14 @@ * Author: Gal Shachor [EMAIL PROTECTED] * * Dan Milstein [EMAIL PROTECTED]* * Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.19 $ * + * Version: $Revision: 1.20 $ * ***/ /* * mod_jk: keeps all servlet/jakarta related ramblings together. */ -#include ap_config.h +/* #include ap_config.h */ #include httpd.h #include http_config.h #include http_request.h @@ -79,7 +79,7 @@ #include util_script.h #include util_date.h #include http_conf_globals.h - + /* * Jakarta (jk_) include files */ 1.17 +9 -1 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.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- jk_ajp_common.c 2001/10/13 17:36:36 1.16 +++ jk_ajp_common.c 2001/10/31 14:03:22 1.17 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.16 $ * + * Version: $Revision: 1.17 $ * ***/ @@ -447,6 +447,8 @@ } d-msg = (char *)jk_b_get_string(msg); +if (d-msg) +jk_xlate_from_ascii(d-msg, strlen(d-msg)); jk_log(l, JK_LOG_DEBUG, ajp_unmarshal_response: status = %d\n, d-status); @@ -479,6 +481,9 @@ jk_log(l, JK_LOG_ERROR, Error ajp_unmarshal_response - Null header name\n); return JK_FALSE; } +jk_xlate_from_ascii(d-header_names[i], + strlen(d-header_names[i])); + } d-header_values[i] = (char *)jk_b_get_string(msg); @@ -486,6 +491,9 @@ jk_log(l, JK_LOG_ERROR, Error ajp_unmarshal_response - Null header value\n); return JK_FALSE; } + +jk_xlate_from_ascii(d-header_values[i], + strlen(d-header_values[i])); jk_log(l, JK_LOG_DEBUG, ajp_unmarshal_response: Header[%d] [%s] = [%s]\n, i, 1.12 +4 -2 jakarta-tomcat-connectors/jk/native/common/jk_global.h Index: jk_global.h === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/common/jk_global.h,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- jk_global.h 2001/10/26 14:02:18 1.11 +++ jk_global.h 2001/10/31 14:03:22 1.12 @@ -59,7 +59,7 @@ * Description: Global definitions and include files that should exist * * anywhere * * Author: Gal Shachor [EMAIL PROTECTED] * - * Version: $Revision: 1.11 $ * + * Version: $Revision: 1.12 $ * ***/ #ifndef JK_GLOBAL_H @@ -91,7 +91,9 @@ #include netinet/tcp.h #include arpa/inet.h #include sys/un.h -#include sys/socketvar.h +#ifndef _OSD_POSIX +#include sys/socketvar.h +#endif #ifndef HPUX11 #include sys/select.h #endif 1.6 +2 -2 jakarta-tomcat-connectors/jk/native/common/jk_md5.c Index: jk_md5.c
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h
keith 01/10/01 13:50:39 Modified:jk/doc AJPv13.html jk/java/org/apache/ajp Ajp13.java RequestHandler.java jk/native/common jk_ajp_common.c jk_ajp_common.h Log: DeltaV is now an IESG Proposed Standard. Add the four new versioning methods. Revision ChangesPath 1.4 +5 -1 jakarta-tomcat-connectors/jk/doc/AJPv13.html Index: AJPv13.html === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/doc/AJPv13.html,v retrieving revision 1.3 retrieving revision 1.4 diff -u -r1.3 -r1.4 --- AJPv13.html 2001/08/27 15:33:04 1.3 +++ AJPv13.html 2001/10/01 20:50:39 1.4 @@ -357,8 +357,12 @@ MOVE12 LOCK13 UNLOCK 14 -ACL 15 +ACL 15 REPORT 16 +VERSION-CONTROL 17 +CHECKIN 18 +CHECKOUT19 +UNCHECKOUT 20 /PRE P /DD 1.16 +5 -1 jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java Index: Ajp13.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v retrieving revision 1.15 retrieving revision 1.16 diff -u -r1.15 -r1.16 --- Ajp13.java2001/09/27 10:28:12 1.15 +++ Ajp13.java2001/10/01 20:50:39 1.16 @@ -168,7 +168,11 @@ LOCK, UNLOCK, ACL, -REPORT +REPORT, +VERSION-CONTROL, +CHECKIN, +CHECKOUT, +UNCHECKOUT }; // id's for common request headers 1.3 +6 -2 jakarta-tomcat-connectors/jk/java/org/apache/ajp/RequestHandler.java Index: RequestHandler.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/RequestHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -r1.2 -r1.3 --- RequestHandler.java 2001/08/27 15:33:04 1.2 +++ RequestHandler.java 2001/10/01 20:50:39 1.3 @@ -148,8 +148,12 @@ MOVE, LOCK, UNLOCK, -ACL, -REPORT +ACL, +REPORT, +VERSION-CONTROL, +CHECKIN, +CHECKOUT, +UNCHECKOUT }; // id's for common request headers 1.13 +11 -3 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.12 retrieving revision 1.13 diff -u -r1.12 -r1.13 --- jk_ajp_common.c 2001/09/14 22:30:04 1.12 +++ jk_ajp_common.c 2001/10/01 20:50:39 1.13 @@ -130,8 +130,16 @@ *sc = SC_M_UNLOCK; } else if(0 == strcmp(method, ACL)) { *sc = SC_M_ACL; -} else if(0 == strcmp(method, REPORT)) { - *sc = SC_M_REPORT; +} else if(0 == strcmp(method, REPORT)) { + *sc = SC_M_REPORT; +} else if(0 == strcmp(method, VERSION-CONTROL)) { +*sc = SC_M_VERSION_CONTROL; +} else if(0 == strcmp(method, CHECKIN)) { +*sc = SC_M_CHECKIN; +} else if(0 == strcmp(method, CHECKOUT)) { +*sc = SC_M_CHECKOUT; +} else if(0 == strcmp(method, UNCHECKOUT)) { +*sc = SC_M_UNCHECKOUT; } else { rc = JK_FALSE; } 1.10 +12 -4 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.9 retrieving revision 1.10 diff -u -r1.9 -r1.10 --- jk_ajp_common.h 2001/09/14 22:34:11 1.9 +++ jk_ajp_common.h 2001/10/01 20:50:39 1.10 @@ -93,7 +93,7 @@ /* * Request methods, coded as numbers instead of strings. * The list of methods was taken from Section 5.1.1 of RFC 2616, - * RFC 2518, and the ACL IETF draft. + * RFC 2518, the ACL IETF draft, and the DeltaV IESG Proposed Standard. * Method= OPTIONS *| GET *| HEAD @@ -108,8 +108,12 @@ *| MOVE *| LOCK *| UNLOCK - *| ACL + *| ACL *| REPORT + *| VERSION-CONTROL + *| CHECKIN + *| CHECKOUT + *| UNCHECKOUT * */ #define SC_M_OPTIONS(unsigned char)1 @@ -126,8 +130,12 @@ #define SC_M_MOVE (unsigned char)12 #define SC_M_LOCK
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
jfclere 01/09/14 04:15:00 Modified:jk/java/org/apache/ajp Ajp13.java jk/native/common jk_ajp_common.c Log: Arrange the KEY_SIZE_ATTR. (Note it is for TC4.0). Revision ChangesPath 1.12 +5 -2 jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java Index: Ajp13.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Ajp13.java2001/09/13 14:29:51 1.11 +++ Ajp13.java2001/09/14 11:15:00 1.12 @@ -131,6 +131,7 @@ public static final byte SC_A_SSL_CERT = 7; public static final byte SC_A_SSL_CIPHER= 8; public static final byte SC_A_SSL_SESSION = 9; +public static final byte SC_A_SSL_KEYSIZE = 11; // Used for attributes which are not in the list above public static final byte SC_A_REQ_ATTRIBUTE = 10; @@ -403,8 +404,6 @@ isSSL = true; req.setAttribute(javax.servlet.request.X509Certificate, msg.getString()); -req.setAttribute(javax.servlet.request.key_size, - new Integer (msg.getLen())); break; case SC_A_SSL_CIPHER : @@ -424,6 +423,10 @@ msg.getString()); break; + case SC_A_SSL_KEYSIZE : +req.setAttribute(javax.servlet.request.key_size, + new Integer (msg.getInt())); +break; default: if (decodeMoreHeaders(req, attributeCode, msg) != 500) break; 1.11 +3 -2 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.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- jk_ajp_common.c 2001/09/10 21:51:57 1.10 +++ jk_ajp_common.c 2001/09/14 11:15:00 1.11 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.10 $ * + * Version: $Revision: 1.11 $ * ***/ @@ -364,8 +364,9 @@ /* * ssl_key_size is required by Servlet 2.3 API * added support only in ajp14 mode + * JFC removed: ae-proto == AJP14_PROTO */ -if ((ae-proto == AJP14_PROTO) (s-ssl_key_size != -1)) { +if (s-ssl_key_size != -1) { if (jk_b_append_byte(msg, SC_A_SSL_KEY_SIZE) || jk_b_append_int(msg, (unsigned short) s-ssl_key_size)) { jk_log(l, JK_LOG_ERROR, Error ajp_marshal_into_msgb - Error appending the SSL key size\n);
RE: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c
Warning, Read my previous mail about adding new features to AJP13 which are unknown to current Tomcat 3.2/3.3 - Henri Gomez ___[_] EMAIL : [EMAIL PROTECTED](. .) PGP KEY : 697ECEDD...oOOo..(_)..oOOo... PGP Fingerprint : 9DF8 1EA8 ED53 2F39 DC9B 904A 364F 80E6 -Original Message- From: [EMAIL PROTECTED] [mailto:[EMAIL PROTECTED]] Sent: Friday, September 14, 2001 1:15 PM To: [EMAIL PROTECTED] Subject: cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jfclere 01/09/14 04:15:00 Modified:jk/java/org/apache/ajp Ajp13.java jk/native/common jk_ajp_common.c Log: Arrange the KEY_SIZE_ATTR. (Note it is for TC4.0). Revision ChangesPath 1.12 +5 -2 jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java Index: Ajp13.java === RCS file: /home/cvs/jakarta-tomcat-connectors/jk/java/org/apache/ajp/Ajp13.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- Ajp13.java 2001/09/13 14:29:51 1.11 +++ Ajp13.java 2001/09/14 11:15:00 1.12 @@ -131,6 +131,7 @@ public static final byte SC_A_SSL_CERT = 7; public static final byte SC_A_SSL_CIPHER= 8; public static final byte SC_A_SSL_SESSION = 9; +public static final byte SC_A_SSL_KEYSIZE = 11; // Used for attributes which are not in the list above public static final byte SC_A_REQ_ATTRIBUTE = 10; @@ -403,8 +404,6 @@ isSSL = true; req.setAttribute(javax.servlet.request.X509Certificate, msg.getString()); -req.setAttribute(javax.servlet.request.key_size, - new Integer (msg.getLen())); break; case SC_A_SSL_CIPHER : @@ -424,6 +423,10 @@ msg.getString()); break; +case SC_A_SSL_KEYSIZE : +req.setAttribute(javax.servlet.request.key_size, + new Integer (msg.getInt())); +break; default: if (decodeMoreHeaders(req, attributeCode, msg) != 500) break; 1.11 +3 -2 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.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- jk_ajp_common.c 2001/09/10 21:51:57 1.10 +++ jk_ajp_common.c 2001/09/14 11:15:00 1.11 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.10 $ * + * Version: $Revision: 1.11 $ * *** / @@ -364,8 +364,9 @@ /* * ssl_key_size is required by Servlet 2.3 API * added support only in ajp14 mode + * JFC removed: ae-proto == AJP14_PROTO */ -if ((ae-proto == AJP14_PROTO) (s-ssl_key_size != -1)) { +if (s-ssl_key_size != -1) { if (jk_b_append_byte(msg, SC_A_SSL_KEY_SIZE) || jk_b_append_int(msg, (unsigned short) s-ssl_key_size)) { jk_log(l, JK_LOG_ERROR, Error ajp_marshal_into_msgb - Error appending the SSL key size\n);
cvs commit: jakarta-tomcat-connectors/jk/native/common jk_ajp_common.c jk_ajp_common.h
hgomez 01/09/14 15:30:05 Modified:jk/native/common jk_ajp_common.c jk_ajp_common.h Log: Update information on when SSL_KEY_SIZE is sent to Tomcat Server via the use of JkOptions +ForwardKeySize Revision ChangesPath 1.12 +2 -2 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.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- jk_ajp_common.c 2001/09/14 11:15:00 1.11 +++ jk_ajp_common.c 2001/09/14 22:30:04 1.12 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocols ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.11 $ * + * Version: $Revision: 1.12 $ * ***/ @@ -253,7 +253,7 @@ ?ssl_cert (byte)(string) ?ssl_cipher(byte)(string) ?ssl_session (byte)(string) -?ssl_key_size (byte)(int) only AJP14 +?ssl_key_size (byte)(int) via JkOptions +ForwardKeySize request_terminator (byte) ?body content_length*(var binary) 1.8 +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.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- jk_ajp_common.h 2001/09/10 21:51:57 1.7 +++ jk_ajp_common.h 2001/09/14 22:30:04 1.8 @@ -59,7 +59,7 @@ * Description: common stuff for bi-directional protocol ajp13/ajp14. * * Author: Gal Shachor [EMAIL PROTECTED] * * Author: Henri Gomez [EMAIL PROTECTED] * - * Version: $Revision: 1.7 $ * + * Version: $Revision: 1.8 $ * ***/ #ifndef JK_AJP_COMMON_H @@ -87,7 +87,7 @@ #define SC_A_SSL_CIPHER (unsigned char)8 #define SC_A_SSL_SESSION(unsigned char)9 #define SC_A_REQ_ATTRIBUTE (unsigned char)10 -#define SC_A_SSL_KEY_SIZE (unsigned char)11/* only in AJP14 protocol */ +#define SC_A_SSL_KEY_SIZE (unsigned char)11/* /* only in if JkOptions +ForwardKeySize */ #define SC_A_ARE_DONE (unsigned char)0xFF /*