Author: mturk
Date: Tue Oct  7 09:44:44 2008
New Revision: 702540

URL: http://svn.apache.org/viewvc?rev=702540&view=rev
Log:
Send an empty initial POST message if client failed in a middle of request

Modified:
    tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
    tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml

Modified: tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c?rev=702540&r1=702539&r2=702540&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c (original)
+++ tomcat/connectors/trunk/jk/native/common/jk_ajp_common.c Tue Oct  7 
09:44:44 2008
@@ -1588,6 +1588,14 @@
             if ((len = ajp_read_into_msg_buff(ae, s, op->post, len, l)) < 0) {
                 /* the browser stop sending data, no need to recover */
                 op->recoverable = JK_FALSE;
+                /* Send an empty POST message since per AJP protocol
+                 * spec whenever we have content lenght the message
+                 * packet must be followed with initial POST packet.
+                 * Size zero will be handled as error in container.
+                 */
+                jk_b_reset(op->post);
+                jk_b_append_int(op->post, 0);
+                ajp_connection_tcp_send_message(ae, op->post, l);
                 JK_TRACE_EXIT(l);
                 return JK_CLIENT_RD_ERROR;
             }

Modified: tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml
URL: 
http://svn.apache.org/viewvc/tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml?rev=702540&r1=702539&r2=702540&view=diff
==============================================================================
--- tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml (original)
+++ tomcat/connectors/trunk/jk/xdocs/miscellaneous/changelog.xml Tue Oct  7 
09:44:44 2008
@@ -43,6 +43,12 @@
   <br />
   <subsection name="Native">
     <changelog>
+      <fix>Always send initial POST packet even if the client
+        disconnected after sending request but before providing
+        POST data. In that case or in case the client broke the
+        connection in a middle of read send an zero size packet
+        informing container about broken client connection. (mturk) 
+      </fix>
       <update>
         Added connection_acquire_timeout directive for setting the
         absolute timeout the worker will wait for a free endpoint. (mturk)



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to