Author: markt
Date: Fri Dec 11 20:29:00 2015
New Revision: 1719532
URL: http://svn.apache.org/viewvc?rev=1719532&view=rev
Log:
Handle APR_POLLHUP using the correct status DISCONNECT rather than as OPEN_READ
or OPEN_WRITE.
Modified:
tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java?rev=1719532&r1=1719531&r2=1719532&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/AprEndpoint.java Fri Dec 11
20:29:00 2015
@@ -1706,8 +1706,12 @@ public class AprEndpoint extends Abstrac
}
wrapper.pollerFlags = wrapper.pollerFlags &
~((int) desc[n*2]);
// Check for failed sockets and hand this
socket off to a worker
- if (((desc[n*2] & Poll.APR_POLLHUP) ==
Poll.APR_POLLHUP)
- || ((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)
+ if ((desc[n*2] & Poll.APR_POLLHUP) ==
Poll.APR_POLLHUP) {
+ if (!processSocket(desc[n*2+1],
SocketStatus.DISCONNECT)) {
+ // Close socket and clear pool
+ closeSocket(desc[n*2+1]);
+ }
+ } else if(((desc[n*2] & Poll.APR_POLLERR) ==
Poll.APR_POLLERR)
|| ((desc[n*2] & Poll.APR_POLLNVAL) ==
Poll.APR_POLLNVAL)) {
// Need to trigger error handling. Poller
may return error
// codes plus the flags it was waiting for
or it may just
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]