You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2007/12/12 10:23:22 UTC
svn commit: r603519 - /tomcat/connectors/trunk/jk/native/common/jk_connect.c
Author: rjung
Date: Wed Dec 12 01:23:21 2007
New Revision: 603519
URL: http://svn.apache.org/viewvc?rev=603519&view=rev
Log:
Introduce TRACE to jk_connect.c.
Modified:
tomcat/connectors/trunk/jk/native/common/jk_connect.c
Modified: tomcat/connectors/trunk/jk/native/common/jk_connect.c
URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_connect.c?rev=603519&r1=603518&r2=603519&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_connect.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_connect.c Wed Dec 12 01:23:21 2007
@@ -143,11 +143,19 @@
static int nb_connect(jk_sock_t sock, struct sockaddr *addr, int timeout, jk_logger_t *l)
{
int rc;
- if (timeout <= 0)
- return connect(sock, addr, sizeof(struct sockaddr_in));
- if ((rc = sononblock(sock)))
+ JK_TRACE_ENTER(l);
+
+ if (timeout <= 0) {
+ rc = connect(sock, addr, sizeof(struct sockaddr_in));
+ JK_TRACE_EXIT(l);
+ return rc;
+ }
+
+ if ((rc = sononblock(sock))) {
+ JK_TRACE_EXIT(l);
return -1;
+ }
if (JK_IS_SOCKET_ERROR(connect(sock, addr, sizeof(struct sockaddr_in)))) {
struct timeval tv;
fd_set wfdset, efdset;
@@ -155,6 +163,7 @@
if ((rc = WSAGetLastError()) != WSAEWOULDBLOCK) {
soblock(sock);
WSASetLastError(rc);
+ JK_TRACE_EXIT(l);
return -1;
}
/* wait for the connect to complete or timeout */
@@ -170,6 +179,7 @@
rc = WSAGetLastError();
soblock(sock);
WSASetLastError(rc);
+ JK_TRACE_EXIT(l);
return -1;
}
/* Evaluate the efdset */
@@ -181,10 +191,12 @@
soblock(sock);
if (rc)
WSASetLastError(rc);
+ JK_TRACE_EXIT(l);
return -1;
}
}
soblock(sock);
+ JK_TRACE_EXIT(l);
return 0;
}
@@ -203,9 +215,13 @@
{
int rc = 0;
+ JK_TRACE_ENTER(l);
+
if (timeout > 0) {
- if (sononblock(sock))
+ if (sononblock(sock)) {
+ JK_TRACE_EXIT(l);
return -1;
+ }
}
do {
rc = connect(sock, addr, sizeof(struct sockaddr_in));
@@ -227,6 +243,7 @@
int err = errno;
soblock(sock);
errno = err;
+ JK_TRACE_EXIT(l);
return -1;
}
rc = 0;
@@ -244,6 +261,7 @@
if (rc == -1 && errno == EISCONN)
rc = 0;
soblock(sock);
+ JK_TRACE_EXIT(l);
return rc;
}
#else
@@ -258,7 +276,13 @@
*/
static int nb_connect(jk_sock_t sock, struct sockaddr *addr, int timeout, jk_logger_t *l)
{
- return connect(sock, addr, sizeof(struct sockaddr_in));
+ int rc;
+
+ JK_TRACE_ENTER(l);
+
+ rc = connect(sock, addr, sizeof(struct sockaddr_in));
+ JK_TRACE_EXIT(l);
+ return rc;
}
#endif
@@ -296,6 +320,8 @@
int x;
struct in_addr laddr;
+ JK_TRACE_ENTER(l);
+
memset(rc, 0, sizeof(struct sockaddr_in));
rc->sin_port = htons((short)port);
@@ -316,13 +342,17 @@
char *remote_ipaddr;
if (!jk_apr_pool) {
- if (apr_pool_create(&jk_apr_pool, NULL) != APR_SUCCESS)
+ if (apr_pool_create(&jk_apr_pool, NULL) != APR_SUCCESS) {
+ JK_TRACE_EXIT(l);
return JK_FALSE;
+ }
}
if (apr_sockaddr_info_get
(&remote_sa, host, APR_UNSPEC, (apr_port_t) port, 0, jk_apr_pool)
- != APR_SUCCESS)
+ != APR_SUCCESS) {
+ JK_TRACE_EXIT(l);
return JK_FALSE;
+ }
/* Since we are only handling AF_INET (IPV4) address (in_addr_t) */
/* make sure we find one of those. */
@@ -333,8 +363,10 @@
/* if temp_sa is set, we have a valid address otherwise, just return */
if (NULL != temp_sa)
remote_sa = temp_sa;
- else
+ else {
+ JK_TRACE_EXIT(l);
return JK_FALSE;
+ }
apr_sockaddr_ip_get(&remote_ipaddr, remote_sa);
@@ -350,6 +382,7 @@
struct hostent *hoste = gethostbyname(host);
#endif
if (!hoste) {
+ JK_TRACE_EXIT(l);
return JK_FALSE;
}
@@ -363,6 +396,7 @@
}
memcpy(&(rc->sin_addr), &laddr, sizeof(laddr));
+ JK_TRACE_EXIT(l);
return JK_TRUE;
}
@@ -548,14 +582,22 @@
*/
int jk_close_socket(jk_sock_t s, jk_logger_t *l)
{
- if (!IS_VALID_SOCKET(s))
+ int rc;
+
+ JK_TRACE_ENTER(l);
+
+ if (!IS_VALID_SOCKET(s)) {
+ JK_TRACE_EXIT(l);
return -1;
+ }
#if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
- return closesocket(s) ? -1 : 0;
+ rc = closesocket(s) ? -1 : 0;
#else
- return close(s);
+ rc = close(s);
#endif
+ JK_TRACE_EXIT(l);
+ return rc;
}
#ifndef MAX_SECS_TO_LINGER
@@ -587,14 +629,20 @@
struct timeval tv;
time_t start = time(NULL);
- if (!IS_VALID_SOCKET(s))
+ JK_TRACE_ENTER(l);
+
+ if (!IS_VALID_SOCKET(s)) {
+ JK_TRACE_EXIT(l);
return -1;
+ }
/* Shut down the socket for write, which will send a FIN
* to the peer.
*/
if (shutdown(s, SHUT_WR)) {
- return jk_close_socket(s, l);
+ rc = jk_close_socket(s, l);
+ JK_TRACE_EXIT(l);
+ return rc;
}
/* Set up to wait for readable data on socket... */
@@ -630,7 +678,9 @@
} while (difftime(time(NULL), start) < MAX_SECS_TO_LINGER);
- return jk_close_socket(s, l);
+ rc = jk_close_socket(s, l);
+ JK_TRACE_EXIT(l);
+ return rc;
}
/** send a message
@@ -650,6 +700,8 @@
int sent = 0;
int wr;
+ JK_TRACE_ENTER(l);
+
while (sent < len) {
do {
#if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
@@ -662,13 +714,18 @@
#endif
} while (JK_IS_SOCKET_ERROR(wr) && (errno == EINTR || errno == EAGAIN));
- if (JK_IS_SOCKET_ERROR(wr))
+ if (JK_IS_SOCKET_ERROR(wr)) {
+ JK_TRACE_EXIT(l);
return (errno > 0) ? -errno : errno;
- else if (wr == 0)
+ }
+ else if (wr == 0) {
+ JK_TRACE_EXIT(l);
return JK_SOCKET_EOF;
+ }
sent += wr;
}
+ JK_TRACE_EXIT(l);
return sent;
}
@@ -687,6 +744,8 @@
int rdlen = 0;
int rd;
+ JK_TRACE_ENTER(l);
+
while (rdlen < len) {
do {
#if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
@@ -699,13 +758,18 @@
#endif
} while (JK_IS_SOCKET_ERROR(rd) && (errno == EINTR || errno == EAGAIN));
- if (JK_IS_SOCKET_ERROR(rd))
+ if (JK_IS_SOCKET_ERROR(rd)) {
+ JK_TRACE_EXIT(l);
return (errno > 0) ? -errno : errno;
- else if (rd == 0)
+ }
+ else if (rd == 0) {
+ JK_TRACE_EXIT(l);
return JK_SOCKET_EOF;
+ }
rdlen += rd;
}
+ JK_TRACE_EXIT(l);
return rdlen;
}
@@ -737,6 +801,8 @@
struct timeval tv;
int rc;
+ JK_TRACE_ENTER(l);
+
FD_ZERO(&fd);
FD_SET(sock, &fd);
@@ -755,26 +821,30 @@
if (rc == 0) {
/* If we get a timeout, then we are still connected */
+ JK_TRACE_EXIT(l);
return JK_TRUE;
}
else if (rc == 1) {
#if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
u_long nr;
- if (ioctlsocket(sock, FIONREAD, &nr) == 0) {
+ rc = ioctlsocket(sock, FIONREAD, &nr);
+ if (rc == 0) {
if (WSAGetLastError() == 0)
errno = 0;
else
JK_GET_SOCKET_ERRNO();
- return nr == 0 ? JK_FALSE : JK_TRUE;
}
- JK_GET_SOCKET_ERRNO();
#else
int nr;
- if (ioctl(sock, FIONREAD, (void*)&nr) == 0) {
- return nr == 0 ? JK_FALSE : JK_TRUE;
- }
+ rc = ioctl(sock, FIONREAD, (void*)&nr);
#endif
+ if (rc == 0 && nr != 0) {
+ return JK_TRUE;
+ JK_TRACE_EXIT(l);
+ }
+ JK_GET_SOCKET_ERRNO();
}
+ JK_TRACE_EXIT(l);
return JK_FALSE;
}
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org