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 */
                }
  
  
  

Reply via email to