Author: rjung Date: Wed Dec 12 03:23:51 2007 New Revision: 603566 URL: http://svn.apache.org/viewvc?rev=603566&view=rev Log: Undo revision r603561, because forgot to commit analogous jk_connect.c changes.
Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c?rev=603566&r1=603565&r2=603566&view=diff ============================================================================== --- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c (original) +++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Wed Dec 12 03:23:51 2007 @@ -888,10 +888,6 @@ return JK_FATAL_ERROR; } - /* This is the only place in this function where we use the socket. */ - /* If sendfull gets an error, it implicitely closes the socket. */ - /* So any socket error inside ajp_connection_tcp_send_message */ - /* results in a socket close and invalidated endpoint connection. */ if ((rc = jk_tcp_socket_sendfull(ae->sd, msg->buf, msg->len, l)) > 0) { ae->endpoint.wr += (jk_uint64_t)rc; @@ -902,7 +898,6 @@ ae->last_errno = errno; jk_log(l, JK_LOG_ERROR, "sendfull returned %d (errno=%d)", rc, ae->last_errno); - ae->sd = JK_INVALID_SOCKET; JK_TRACE_EXIT(l); return JK_FALSE; @@ -923,8 +918,6 @@ JK_TRACE_ENTER(l); - /* If recvfull gets an error, it implicitely closes the socket. */ - /* We will invalidate the endpoint connection. */ rc = jk_tcp_socket_recvfull(ae->sd, head, AJP_HEADER_LEN, l); if (rc < 0) { @@ -933,6 +926,7 @@ jk_log(l, JK_LOG_INFO, "(%s) Tomcat has forced a connection close for socket %d", ae->worker->name, ae->sd); + JK_TRACE_EXIT(l); } else { jk_log(l, JK_LOG_ERROR, @@ -940,9 +934,8 @@ "network problems or tomcat (%s) is down (errno=%d)", ae->worker->name, jk_dump_hinfo(&ae->worker->worker_inet_addr, buf), ae->last_errno); + JK_TRACE_EXIT(l); } - ae->sd = JK_INVALID_SOCKET; - JK_TRACE_EXIT(l); return JK_FALSE; } ae->last_errno = 0; @@ -963,10 +956,6 @@ header, jk_dump_hinfo(&ae->worker->worker_inet_addr, buf)); } - /* We've got a protocol error. */ - /* We can't trust this connection any more. */ - jk_shutdown_socket(ae->sd, l); - ae->sd = JK_INVALID_SOCKET; JK_TRACE_EXIT(l); return JK_FALSE; } @@ -985,10 +974,6 @@ header, jk_dump_hinfo(&ae->worker->worker_inet_addr, buf)); } - /* We've got a protocol error. */ - /* We can't trust this connection any more. */ - jk_shutdown_socket(ae->sd, l); - ae->sd = JK_INVALID_SOCKET; JK_TRACE_EXIT(l); return JK_FALSE; } @@ -1002,10 +987,6 @@ "wrong message size %d %d from %s", msglen, msg->maxlen, jk_dump_hinfo(&ae->worker->worker_inet_addr, buf)); - /* We've got a protocol error. */ - /* We can't trust this connection any more. */ - jk_shutdown_socket(ae->sd, l); - ae->sd = JK_INVALID_SOCKET; JK_TRACE_EXIT(l); return JK_FALSE; } @@ -1013,8 +994,6 @@ msg->len = msglen; msg->pos = 0; - /* If recvfull gets an error, it implicitely closes the socket. */ - /* We will invalidate the endpoint connection. */ rc = jk_tcp_socket_recvfull(ae->sd, msg->buf, msglen, l); if (rc < 0) { ae->last_errno = errno; @@ -1024,6 +1003,8 @@ "tomcat (%s) has forced a connection close for socket %d", ae->worker->name, jk_dump_hinfo(&ae->worker->worker_inet_addr, buf), ae->sd); + JK_TRACE_EXIT(l); + return JK_FALSE; } else { jk_log(l, JK_LOG_ERROR, @@ -1031,10 +1012,9 @@ "network problems or tomcat (%s) is down (errno=%d)", ae->worker->name, jk_dump_hinfo(&ae->worker->worker_inet_addr, buf), ae->last_errno); + JK_TRACE_EXIT(l); + return JK_FALSE; } - ae->sd = JK_INVALID_SOCKET; - JK_TRACE_EXIT(l); - return JK_FALSE; } ae->last_errno = 0; ae->endpoint.rd += (jk_uint64_t)rc; @@ -1198,6 +1178,7 @@ jk_log(l, JK_LOG_DEBUG, "(%s) socket %d is not connected any more (errno=%d)", ae->worker->name, ae->sd, errno); + jk_shutdown_socket(ae->sd, l); ae->sd = JK_INVALID_SOCKET; err = 1; } @@ -1292,6 +1273,9 @@ * have is probably unrecoverable */ if (ajp_connection_tcp_send_message(ae, op->request, l) != JK_TRUE) { + /* Close the socket if unable to send request */ + jk_shutdown_socket(ae->sd, l); + ae->sd = JK_INVALID_SOCKET; jk_log(l, JK_LOG_INFO, "(%s) error sending request on a fresh connection (errno=%d)", ae->worker->name, ae->last_errno); @@ -1334,6 +1318,9 @@ postlen = op->post->len; if (postlen > AJP_HEADER_LEN) { if (ajp_connection_tcp_send_message(ae, op->post, l) != JK_TRUE) { + /* Close the socket if unable to send request */ + jk_shutdown_socket(ae->sd, l); + ae->sd = JK_INVALID_SOCKET; jk_log(l, JK_LOG_ERROR, "(%s) failed resending request body (%d)", ae->worker->name, postlen); JK_TRACE_EXIT(l); @@ -1351,6 +1338,9 @@ if (postlen > AJP_HEADER_LEN) { if (ajp_connection_tcp_send_message(ae, s->reco_buf, l) != JK_TRUE) { + /* Close the socket if unable to send request */ + jk_shutdown_socket(ae->sd, l); + ae->sd = JK_INVALID_SOCKET; jk_log(l, JK_LOG_ERROR, "(%s) failed resending request body (lb mode) (%d)", ae->worker->name, postlen); @@ -1398,6 +1388,9 @@ s->content_read = (jk_uint64_t)len; if (ajp_connection_tcp_send_message(ae, op->post, l) != JK_TRUE) { + /* Close the socket if unable to send request */ + jk_shutdown_socket(ae->sd, l); + ae->sd = JK_INVALID_SOCKET; jk_log(l, JK_LOG_ERROR, "(%s) error sending request body", ae->worker->name); JK_TRACE_EXIT(l); @@ -1668,7 +1661,7 @@ } } - if (ajp_connection_tcp_get_message(p, op->reply, l) != JK_TRUE) { + 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, @@ -1785,6 +1778,8 @@ jk_log(l, JK_LOG_ERROR, "(%s) Tomcat is down or network problems", p->worker->name); + jk_shutdown_socket(p->sd, l); + p->sd = JK_INVALID_SOCKET; JK_TRACE_EXIT(l); return JK_FALSE; } --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]