You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by hg...@apache.org on 2001/06/01 11:59:47 UTC
cvs commit: jakarta-tomcat-connectors/jk/src/native/common jk_ajp13_worker.c
hgomez 01/06/01 02:59:47
Modified: jk/src/native/common jk_ajp13_worker.c
Log:
Memory leaks fixes from Mike Anderson
Code cleanup (who still use 80 cols today ?)
Revision Changes Path
1.3 +32 -68 jakarta-tomcat-connectors/jk/src/native/common/jk_ajp13_worker.c
Index: jk_ajp13_worker.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat-connectors/jk/src/native/common/jk_ajp13_worker.c,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -r1.2 -r1.3
--- jk_ajp13_worker.c 2001/05/18 16:45:04 1.2
+++ jk_ajp13_worker.c 2001/06/01 09:59:47 1.3
@@ -58,7 +58,7 @@
* Author: Henri Gomez <hg...@slib.fr> *
* Author: Costin <co...@costin.dnt.ro> *
* Author: Gal Shachor <sh...@il.ibm.com> *
- * Version: $Revision: 1.2 $ *
+ * Version: $Revision: 1.3 $ *
***************************************************************************/
#include "jk_ajp13_worker.h"
@@ -73,6 +73,8 @@
static void close_endpoint(ajp13_endpoint_t *ep)
{
reset_endpoint(ep);
+ jk_close_pool(&(ep->pool));
+
if(ep->sd > 0) {
jk_close_socket(ep->sd);
}
@@ -111,20 +113,14 @@
unsigned attempt;
for(attempt = 0 ; attempt < ep->worker->connect_retry_attempts ; attempt++) {
- ep->sd = jk_open_socket(&ep->worker->worker_inet_addr,
- JK_TRUE,
- l);
+ ep->sd = jk_open_socket(&ep->worker->worker_inet_addr, JK_TRUE, l);
if(ep->sd >= 0) {
- jk_log(l,
- JK_LOG_DEBUG,
- "In jk_endpoint_t::connect_to_tomcat, connected sd = %d\n", ep->sd);
+ jk_log(l, JK_LOG_DEBUG, "In jk_endpoint_t::connect_to_tomcat, connected sd = %d\n", ep->sd);
return;
}
}
- jk_log(l,
- JK_LOG_ERROR,
- "In jk_endpoint_t::connect_to_tomcat, failed errno = %d\n", errno);
+ jk_log(l, JK_LOG_ERROR, "In jk_endpoint_t::connect_to_tomcat, failed errno = %d\n", errno);
}
static int connection_tcp_send_message(ajp13_endpoint_t *ep,
@@ -135,9 +131,7 @@
jk_dump_buff(l, JK_LOG_DEBUG, "sending to ajp13", msg);
- if(0 > jk_tcp_socket_sendfull(ep->sd,
- jk_b_get_buff(msg),
- jk_b_get_len(msg))) {
+ if(0 > jk_tcp_socket_sendfull(ep->sd, jk_b_get_buff(msg), jk_b_get_len(msg))) {
return JK_FALSE;
}
@@ -155,14 +149,12 @@
rc = jk_tcp_socket_recvfull(ep->sd, head, AJP13_HEADER_LEN);
if(rc < 0) {
- jk_log(l, JK_LOG_ERROR,
- "connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed\n");
+ jk_log(l, JK_LOG_ERROR, "connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed\n");
return JK_FALSE;
}
if((head[0] != 'A') || (head[1] != 'B' )) {
- jk_log(l, JK_LOG_ERROR,
- "connection_tcp_get_message: Error - Wrong message format\n");
+ jk_log(l, JK_LOG_ERROR, "connection_tcp_get_message: Error - Wrong message format\n");
return JK_FALSE;
}
@@ -170,8 +162,7 @@
msglen += (head[3] & 0xFF);
if(msglen > jk_b_get_size(msg)) {
- jk_log(l, JK_LOG_ERROR,
- "connection_tcp_get_message: Error - Wrong message size\n");
+ jk_log(l, JK_LOG_ERROR, "connection_tcp_get_message: Error - Wrong message size\n");
return JK_FALSE;
}
@@ -180,8 +171,7 @@
rc = jk_tcp_socket_recvfull(ep->sd, jk_b_get_buff(msg), msglen);
if(rc < 0) {
- jk_log(l, JK_LOG_ERROR,
- "connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed\n");
+ jk_log(l, JK_LOG_ERROR, "connection_tcp_get_message: Error - jk_tcp_socket_recvfull failed\n");
return JK_FALSE;
}
@@ -224,16 +214,14 @@
read_buf += AJP13_HEADER_SZ_LEN; /* leave some space for the read length */
if(read_fully_from_server(r, read_buf, len) < 0) {
- jk_log(l, JK_LOG_ERROR,
- "read_into_msg_buff: Error - read_fully_from_server failed\n");
+ jk_log(l, JK_LOG_ERROR, "read_into_msg_buff: Error - read_fully_from_server failed\n");
return JK_FALSE;
}
ep->left_bytes_to_send -= len;
if(0 != jk_b_append_int(msg, (unsigned short)len)) {
- jk_log(l, JK_LOG_ERROR,
- "read_into_msg_buff: Error - jk_b_append_int failed\n");
+ jk_log(l, JK_LOG_ERROR, "read_into_msg_buff: Error - jk_b_append_int failed\n");
return JK_FALSE;
}
@@ -253,12 +241,8 @@
case JK_AJP13_SEND_HEADERS:
{
jk_res_data_t res;
- if(!ajp13_unmarshal_response(msg,
- &res,
- &ep->pool,
- l)) {
- jk_log(l, JK_LOG_ERROR,
- "Error ajp13_process_callback - ajp13_unmarshal_response failed\n");
+ if(!ajp13_unmarshal_response(msg, &res, &ep->pool, l)) {
+ jk_log(l, JK_LOG_ERROR, "Error ajp13_process_callback - ajp13_unmarshal_response failed\n");
return JK_AJP13_ERROR;
}
if(!r->start_response(r,
@@ -267,8 +251,7 @@
(const char * const *)res.header_names,
(const char * const *)res.header_values,
res.num_headers)) {
- jk_log(l, JK_LOG_ERROR,
- "Error ajp13_process_callback - start_response failed\n");
+ jk_log(l, JK_LOG_ERROR, "Error ajp13_process_callback - start_response failed\n");
return JK_INTERNAL_ERROR;
}
}
@@ -278,8 +261,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 ajp13_process_callback - write failed\n");
+ jk_log(l, JK_LOG_ERROR, "Error ajp13_process_callback - write failed\n");
return JK_INTERNAL_ERROR;
}
}
@@ -305,8 +287,7 @@
return JK_AJP13_HAS_RESPONSE;
}
- jk_log(l, JK_LOG_ERROR,
- "Error ajp13_process_callback - read_into_msg_buff failed\n");
+ jk_log(l, JK_LOG_ERROR, "Error ajp13_process_callback - read_into_msg_buff failed\n");
return JK_INTERNAL_ERROR;
}
break;
@@ -326,9 +307,7 @@
break;
default:
- jk_log(l,
- JK_LOG_ERROR,
- "Error ajp13_process_callback - Invalid code: %d\n", code);
+ jk_log(l, JK_LOG_ERROR, "Error ajp13_process_callback - Invalid code: %d\n", code);
return JK_AJP13_ERROR;
}
@@ -344,18 +323,10 @@
if(pThis && pThis->worker_private) {
ajp13_worker_t *p = pThis->worker_private;
- int port = jk_get_worker_port(props,
- p->name,
- AJP13_DEF_PORT);
-
- char *host = jk_get_worker_host(props,
- p->name,
- AJP13_DEF_HOST);
-
- jk_log(l,
- JK_LOG_DEBUG,
- "In jk_worker_t::validate for worker %s contact is %s:%d\n",
- p->name, host, port);
+ int port = jk_get_worker_port(props, p->name, AJP13_DEF_PORT);
+ char *host = jk_get_worker_host(props, p->name, AJP13_DEF_HOST);
+
+ jk_log(l, JK_LOG_DEBUG, "In jk_worker_t::validate for worker %s contact is %s:%d\n", p->name, host, port);
if(port > 1024 && host) {
if(jk_resolve(host, (short)port, &p->worker_inet_addr)) {
@@ -383,13 +354,9 @@
if(pThis && pThis->worker_private) {
ajp13_worker_t *p = pThis->worker_private;
- int cache_sz = jk_get_worker_cache_size(props,
- p->name,
- AJP13_DEF_CACHE_SZ);
-
- if(cache_sz > 0) {
- p->ep_cache =
- (ajp13_endpoint_t **)malloc(sizeof(ajp13_endpoint_t *) * cache_sz);
+ int cache_sz = jk_get_worker_cache_size(props, p->name, AJP13_DEF_CACHE_SZ);
+ if (cache_sz > 0) {
+ p->ep_cache = (ajp13_endpoint_t **)malloc(sizeof(ajp13_endpoint_t *) * cache_sz);
if(p->ep_cache) {
int i;
p->ep_cache_sz = cache_sz;
@@ -397,15 +364,13 @@
p->ep_cache[i] = NULL;
}
JK_INIT_CS(&(p->cs), i);
- if(i) {
+ if (i) {
return JK_TRUE;
}
}
}
} else {
- jk_log(l,
- JK_LOG_ERROR,
- "In jk_worker_t::init, NULL parameters\n");
+ jk_log(l, JK_LOG_ERROR, "In jk_worker_t::init, NULL parameters\n");
}
return JK_FALSE;
@@ -416,6 +381,7 @@
jk_logger_t *l)
{
jk_log(l, JK_LOG_DEBUG, "Into jk_worker_t::destroy\n");
+
if(pThis && *pThis && (*pThis)->worker_private) {
ajp13_worker_t *private_data = (*pThis)->worker_private;
@@ -447,6 +413,7 @@
jk_logger_t *l)
{
jk_log(l, JK_LOG_DEBUG, "Into jk_endpoint_t::done\n");
+
if(e && *e && (*e)->endpoint_private) {
ajp13_endpoint_t *p = (*e)->endpoint_private;
int reuse_ep = p->reuse;
@@ -481,9 +448,7 @@
return JK_TRUE;
}
- jk_log(l,
- JK_LOG_ERROR,
- "In jk_endpoint_t::done, NULL parameters\n");
+ jk_log(l, JK_LOG_ERROR, "In jk_endpoint_t::done, NULL parameters\n");
return JK_FALSE;
}
@@ -795,8 +760,7 @@
const char *name,
jk_logger_t *l)
{
- ajp13_worker_t *private_data =
- (ajp13_worker_t *)malloc(sizeof(ajp13_worker_t));
+ ajp13_worker_t *private_data = (ajp13_worker_t *)malloc(sizeof(ajp13_worker_t));
jk_log(l, JK_LOG_DEBUG, "Into ajp13_worker_factory\n");