remm        2005/04/15 10:19:52

  Modified:    util/java/org/apache/tomcat/util/net AprEndpoint.java
               http11/src/java/org/apache/coyote/http11
                        InternalAprInputBuffer.java
  Log:
  - Fixed keepalive handling (so it works *and* it runs fast).
  
  Revision  Changes    Path
  1.7       +1 -18     
jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java
  
  Index: AprEndpoint.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/util/java/org/apache/tomcat/util/net/AprEndpoint.java,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- AprEndpoint.java  15 Apr 2005 16:37:39 -0000      1.6
  +++ AprEndpoint.java  15 Apr 2005 17:19:52 -0000      1.7
  @@ -773,21 +773,12 @@
                                   // Get the socket pool
                                   pools[n] = Poll.data(desc[n]);
                                   // Get retuned events for this socket
  -                                //events[n] = Poll.events(desc[n]);
  +                                events[n] = Poll.events(desc[n]);
                                   // Remove each socket from the poll right 
away
                                   remove(sockets[n]);
                               }
                           }
                           for (int n = 0; n < rv; n++) {
  -                            // Check the health of the socket 
  -                            int res = Socket.recvt(sockets[n], null, 0, 0, 
0);
  -                            //System.out.println("Events: " + sockets[n] + " 
code: " + events[n] + " res: " + res);
  -                            if (res < 0) {
  -                                // Close socket and clear pool
  -                                Pool.destroy(pools[n]);
  -                                continue;
  -                            }
  -                            /*
                               // Problem events
                               if (((events[n] & Poll.APR_POLLHUP) == 
Poll.APR_POLLHUP)
                                       || ((events[n] & Poll.APR_POLLERR) == 
Poll.APR_POLLERR)) {
  @@ -795,15 +786,7 @@
                                   Pool.destroy(pools[n]);
                                   continue;
                               }
  -                            // Anything non normal
  -                            if (!((events[n] & Poll.APR_POLLIN) == 
Poll.APR_POLLIN)) {
  -                                // Close socket and clear pool
  -                                Pool.destroy(pools[n]);
  -                                continue;
  -                            }
  -                            */
                               // Hand this socket off to a worker
  -                            //System.out.println("Process: " + sockets[n]);
                               getWorkerThread().assign(sockets[n], pools[n]);
                           }
                       }
  
  
  
  1.5       +10 -2     
jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java
  
  Index: InternalAprInputBuffer.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/InternalAprInputBuffer.java,v
  retrieving revision 1.4
  retrieving revision 1.5
  diff -u -r1.4 -r1.5
  --- InternalAprInputBuffer.java       15 Apr 2005 15:49:33 -0000      1.4
  +++ InternalAprInputBuffer.java       15 Apr 2005 17:19:52 -0000      1.5
  @@ -398,7 +398,11 @@
                   if (nRead > 0) {
                       lastValid = pos + nRead;
                   } else {
  -                    return false;
  +                    if (Status.APR_STATUS_IS_ETIMEDOUT(-nRead)) {
  +                        return false;
  +                    } else {
  +                        throw new 
IOException(sm.getString("iib.failedread"));
  +                    }
                   }
               }
   
  @@ -418,7 +422,11 @@
               if (nRead > 0) {
                   lastValid = pos + nRead;
               } else {
  -                return false;
  +                if (Status.APR_STATUS_IS_ETIMEDOUT(-nRead)) {
  +                    return false;
  +                } else {
  +                    throw new IOException(sm.getString("iib.failedread"));
  +                }
               }
           }
   
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to