billbarker    2003/11/20 22:51:45

  Modified:    jk/native/apache-1.3 mod_jk.c
  Log:
  Fix logging file descriptor leak.
  
  Submitted By: Steve Revilak [EMAIL PROTECTED]
  
  Revision  Changes    Path
  1.45      +30 -2     jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c
  
  Index: mod_jk.c
  ===================================================================
  RCS file: /home/cvs/jakarta-tomcat-connectors/jk/native/apache-1.3/mod_jk.c,v
  retrieving revision 1.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- mod_jk.c  5 Nov 2003 09:15:41 -0000       1.44
  +++ mod_jk.c  21 Nov 2003 06:51:45 -0000      1.45
  @@ -224,6 +224,10 @@
   static int JK_METHOD ws_write(jk_ws_service_t *s,
                                 const void *b,
                                 unsigned l);
  +/* srevilak - new function prototypes */
  +static void jk_server_cleanup(void *data);
  +static void jk_generic_cleanup(server_rec *s);
  +
   
   
   /* ====================================================================== */
  @@ -1765,6 +1769,10 @@
               main_log = conf->log;
           }
       }
  +
  +    /* SREVILAK -- register cleanup handler to clear resources on restart,
  +     * to make sure log file gets closed in the parent process  */
  +    ap_register_cleanup(p, s, jk_server_cleanup, ap_null_cleanup);
       
   /*
   { int i;
  @@ -1970,7 +1978,25 @@
   
   static void exit_handler (server_rec *s, ap_pool *p)
   {
  -     server_rec *tmp = s;
  +    /* srevilak - refactor cleanup body to jk_generic_cleanup() */
  +    jk_generic_cleanup(s);
  +}
  + 
  +
  +/** srevilak -- registered as a cleanup handler in jk_init */
  +static void jk_server_cleanup(void *data) 
  +{
  +    jk_generic_cleanup((server_rec *) data);
  +}
  +
  +
  +/** BEGIN SREVILAK 
  + * body taken from exit_handler()
  + */
  +static void jk_generic_cleanup(server_rec *s) 
  +{
  +
  +    server_rec *tmp = s;
   
        /* loop through all available servers to clean up all configuration
         * records we've created
  @@ -1993,6 +2019,8 @@
           tmp = tmp->next;
       }
   }
  +/** END SREVILAK **/
  +
   
   static const handler_rec jk_handlers[] =
   {
  
  
  

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

Reply via email to