hgomez 01/08/23 08:41:20
Modified: src/native/mod_jk/common jk_ajp13_worker.c
Log:
Handle client Browser Stop button
Submitted by: William Barker <[EMAIL PROTECTED]>
Revision Changes Path
1.10 +13 -3 jakarta-tomcat/src/native/mod_jk/common/jk_ajp13_worker.c
Index: jk_ajp13_worker.c
===================================================================
RCS file: /home/cvs/jakarta-tomcat/src/native/mod_jk/common/jk_ajp13_worker.c,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -r1.9 -r1.10
--- jk_ajp13_worker.c 2001/07/18 21:36:35 1.9
+++ jk_ajp13_worker.c 2001/08/23 15:41:20 1.10
@@ -58,7 +58,7 @@
* Author: Henri Gomez <[EMAIL PROTECTED]> *
* Author: Costin <[EMAIL PROTECTED]> *
* Author: Gal Shachor <[EMAIL PROTECTED]> *
- * Version: $Revision: 1.9 $ *
+ * Version: $Revision: 1.10 $ *
***************************************************************************/
#include "jk_pool.h"
@@ -75,6 +75,7 @@
#define DEF_CACHE_SZ (1)
#define JK_INTERNAL_ERROR (-2)
#define JK_FATAL_ERROR (-3)
+#define JK_CLIENT_ERROR (-4)
#define MAX_SEND_BODY_SZ (DEF_BUFFER_SZ - 6)
#define AJP13_HEADER_LEN (4)
#define AJP13_HEADER_SZ_LEN (2)
@@ -338,7 +339,7 @@
res.num_headers)) {
jk_log(l, JK_LOG_ERROR,
"Error ajp13_process_callback - start_response
failed\n");
- return JK_FATAL_ERROR;
+ return JK_CLIENT_ERROR;
}
}
break;
@@ -349,7 +350,7 @@
if(!r->write(r, jk_b_get_buff(msg) + jk_b_get_pos(msg), len)) {
jk_log(l, JK_LOG_ERROR,
"Error ajp13_process_callback - write failed\n");
- return JK_FATAL_ERROR;
+ return JK_CLIENT_ERROR;
}
}
break;
@@ -711,6 +712,15 @@
*/
op->recoverable = JK_FALSE;
return JK_FALSE;
+ } else if(JK_CLIENT_ERROR == rc) {
+ /*
+ * Client has stop talking to us, so get out.
+ * We assume this isn't our fault, so just a normal exit.
+ * In most (all?) cases, the ajp13_endpoint::reuse will still be
+ * false here, so this will be functionally the same as an
+ * un-recoverable error. We just won't log it as such.
+ */
+ return JK_TRUE;
} else if(rc < 0) {
return (JK_FALSE); /* XXX error */
}