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]