Author: mturk
Date: Fri Sep 17 13:00:51 2010
New Revision: 998108

URL: http://svn.apache.org/viewvc?rev=998108&view=rev
Log:
Use exiting is_event function instead duplicate code

Modified:
    tomcat/jk/trunk/native/common/jk_connect.c

Modified: tomcat/jk/trunk/native/common/jk_connect.c
URL: 
http://svn.apache.org/viewvc/tomcat/jk/trunk/native/common/jk_connect.c?rev=998108&r1=998107&r2=998108&view=diff
==============================================================================
--- tomcat/jk/trunk/native/common/jk_connect.c (original)
+++ tomcat/jk/trunk/native/common/jk_connect.c Fri Sep 17 13:00:51 2010
@@ -736,32 +736,10 @@ int jk_shutdown_socket(jk_sock_t sd, jk_
     }
 
     do {
-#ifdef HAVE_POLL
-        struct pollfd fds;
-
-        fds.fd = sd;
-        fds.events = POLLIN;
-#else
-        fd_set rs;
-
-        FD_ZERO(&rs);
-        /* Read all data from the peer until we reach "end-of-file"
-         * (FIN from peer) or we've exceeded our overall timeout. If the
-         * backend does not send us bytes within 2 seconds
-         * (a value pulled from Apache 1.3 which seems to work well),
-         * close the connection.
-         */
-        FD_SET(sd, &rs);
-        tv.tv_sec  = timeout / 1000;
-        tv.tv_usec = (timeout % 1000) * 1000;
-#endif
-        rp = 0;
-#ifdef HAVE_POLL
-        if ((rc = poll(&fds, 1, timeout)) > 0)
-#else
-        if ((rc = select((int)sd + 1, &rs, NULL, NULL, &tv)) > 0)
-#endif
-        {
+        if (jk_is_input_event(sd, timeout, l)) {
+            /* Do a restartable read on the socket
+             * draining out all the data currently in the socket buffer.
+             */
             do {
 #if defined(WIN32) || (defined(NETWARE) && defined(__NOVELL_LIBC__))
                 rc = recv(sd, &dummy[0], sizeof(dummy), 0);
@@ -774,18 +752,17 @@ int jk_shutdown_socket(jk_sock_t sd, jk_
                     rp += rc;
             } while (JK_IS_SOCKET_ERROR(rc) && (errno == EINTR || errno == 
EAGAIN));
 
-            if (rc < 0)
+            if (rc < 0) {
+                /* Read failed.
+                 * Bail out from the loop.
+                 */
                 break;
+            }
         }
         else {
-            if (JK_IS_DEBUG_LEVEL(l)) {
-                if (rc == 0)
-                    jk_log(l, JK_LOG_DEBUG,
-                           "waiting on socket %d timed out", sd);
-                else
-                    jk_log(l, JK_LOG_DEBUG,
-                           "waiting on socket %d failed with error=%d", errno);
-            }
+            /* Error or timeout (reason is logged within jk_is_input_event)
+             * Exit the drain loop
+             */
             break;
         }
         rd += rp;



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to