remm 2005/04/23 10:33:40 Modified: util/java/org/apache/tomcat/util/net AprEndpoint.java http11/src/java/org/apache/coyote/http11 Http11AprProcessor.java Log: - Fix keepalive for sendfile. Revision Changes Path 1.17 +9 -7 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.16 retrieving revision 1.17 diff -u -r1.16 -r1.17 --- AprEndpoint.java 23 Apr 2005 17:05:31 -0000 1.16 +++ AprEndpoint.java 23 Apr 2005 17:33:40 -0000 1.17 @@ -1052,7 +1052,7 @@ Pool.destroy(pool); } - public void add(long socket, SendfileData data) { + public boolean add(long socket, SendfileData data) { // Initialize fd from data given try { data.fdpool = Pool.create(data.pool); @@ -1069,26 +1069,27 @@ if (nw < 0) { if (!Status.APR_STATUS_IS_EAGAIN(-nw)) { Poll.destroy(data.pool); - return; + return false; } else { // Break the loop and add the socket to poller. break; } - } - else { + } else { data.pos = data.pos + nw; if (data.pos >= data.end) { // Entire file has been send - Poll.destroy(data.pool); - return; + Poll.destroy(data.fdpool); + // Set back socket to blocking mode + Socket.optSet(socket, Socket.APR_SO_NONBLOCK, 0); + return true; } } } } catch (Error e) { // FIXME: more appropriate logging e.printStackTrace(); - return; + return false; } synchronized (this) { // Add socket to the poller @@ -1103,6 +1104,7 @@ Pool.destroy(data.pool); } } + return false; } public void remove(long socket) { 1.9 +3 -2 jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java Index: Http11AprProcessor.java =================================================================== RCS file: /home/cvs/jakarta-tomcat-connectors/http11/src/java/org/apache/coyote/http11/Http11AprProcessor.java,v retrieving revision 1.8 retrieving revision 1.9 diff -u -r1.8 -r1.9 --- Http11AprProcessor.java 20 Apr 2005 16:13:23 -0000 1.8 +++ Http11AprProcessor.java 23 Apr 2005 17:33:40 -0000 1.9 @@ -872,9 +872,10 @@ // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null) { - keepAlive = false; sendfileData.pool = pool; - endpoint.getSendfile().add(socket, sendfileData); + if (!endpoint.getSendfile().add(socket, sendfileData)) { + keepAlive = false; + } } }
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]