From 586be549f98e628222f0e4116744ae4843b38d78 Mon Sep 17 00:00:00 2001 From: "William A. Rowe Jr" Date: Mon, 31 Dec 2007 05:00:16 +0000 Subject: [PATCH] On win32, we must never, never close the parent's copy of the child's read end for a reliable piped logger. The child runs and manages it's own logs, and even if the parent did instead, the mpm would be adjusted to pass down the child write ends without read ends to the pipes, so this forever makes no sense. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@607666 13f79535-47bb-0310-9956-ffa450edef68 --- server/log.c | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/server/log.c b/server/log.c index 97559d80dc..5c8b1a4936 100644 --- a/server/log.c +++ b/server/log.c @@ -161,15 +161,26 @@ static apr_status_t clear_handle_list(void *v) return APR_SUCCESS; } -/* remember to close this handle in the child process */ +/* remember to close this handle in the child process + * + * On Win32 this makes zero sense, because we don't + * take the parent process's child procs. + * If the win32 parent instead passed each and every + * logger write handle from itself down to the child, + * and the parent manages all aspects of keeping the + * reliable pipe log children alive, this would still + * make no sense :) Cripple it on Win32. + */ static void close_handle_in_child(apr_pool_t *p, apr_file_t *f) { +#ifndef WIN32 read_handle_t *new_handle; new_handle = apr_pcalloc(p, sizeof(read_handle_t)); new_handle->next = read_handles; new_handle->handle = f; read_handles = new_handle; +#endif } void ap_logs_child_init(apr_pool_t *p, server_rec *s) -- 2.40.0