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]