Author: mturk Date: Sun Oct 29 08:50:07 2006 New Revision: 468936 URL: http://svn.apache.org/viewvc?view=rev&rev=468936 Log: On explicit flush, create an empty (8 bytes) SEND_BODY_CHUNK message, that can be used by web server to flush the packet.
Modified: tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java Modified: tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java URL: http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java?view=diff&rev=468936&r1=468935&r2=468936 ============================================================================== --- tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java (original) +++ tomcat/connectors/trunk/jk/java/org/apache/coyote/ajp/AjpAprProcessor.java Sun Oct 29 08:50:07 2006 @@ -262,6 +262,10 @@ */ protected static final byte[] endMessageArray; + /** + * Direct buffer used for sending explicit flush message. + */ + protected static final ByteBuffer flushMessageBuffer; // ----------------------------------------------------- Static Initializer @@ -298,6 +302,18 @@ System.arraycopy(endMessage.getBuffer(), 0, endMessageArray, 0, endMessage.getLen()); + // Set the flush message buffer + AjpMessage flushMessage = new AjpMessage(); + flushMessage.reset(); + flushMessage.appendByte(Constants.JK_AJP13_SEND_BODY_CHUNK); + flushMessage.appendInt(0); + flushMessage.appendByte(0); + flushMessage.end(); + flushMessageBuffer = + ByteBuffer.allocateDirect(flushMessage.getLen()); + flushMessageBuffer.put(flushMessage.getBuffer(), 0, + flushMessage.getLen()); + } @@ -510,6 +526,11 @@ try { flush(); + // Send explicit flush message + if (Socket.sendb(socket, flushMessageBuffer, 0, + flushMessageBuffer.position()) < 0) { + error = true; + } } catch (IOException e) { // Set error flag error = true; --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]