Author: markt Date: Thu Jan 9 21:32:25 2014 New Revision: 1556957 URL: http://svn.apache.org/r1556957 Log: Fix https://issues.apache.org/bugzilla/show_bug.cgi?id=55976 Fix sendfile support on NIO
Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1556957&r1=1556956&r2=1556957&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Thu Jan 9 21:32:25 2014 @@ -276,6 +276,7 @@ public class Http11NioProcessor extends @Override protected boolean breakKeepAliveLoop( SocketWrapper<NioChannel> socketWrapper) { + openSocket = keepAlive; // Do sendfile as needed: add socket to sendfile and end if (sendfileData != null && !error) { ((KeyAttachment) socketWrapper).setSendfileData(sendfileData); @@ -283,8 +284,16 @@ public class Http11NioProcessor extends SelectionKey key = socketWrapper.getSocket().getIOChannel().keyFor( socketWrapper.getSocket().getPoller().getSelector()); //do the first write on this thread, might as well - openSocket = socketWrapper.getSocket().getPoller().processSendfile(key, - (KeyAttachment) socketWrapper, true); + if (socketWrapper.getSocket().getPoller().processSendfile(key, + (KeyAttachment) socketWrapper, true)) { + sendfileInProgress = true; + } else { + // Write failed + if (log.isDebugEnabled()) { + log.debug(sm.getString("http11processor.sendfile.error")); + } + error = true; + } return true; } return false; --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org