You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by wr...@apache.org on 2007/12/31 06:01:05 UTC

svn commit: r607668 - /httpd/httpd/branches/2.0.x/server/log.c

Author: wrowe
Date: Sun Dec 30 21:01:05 2007
New Revision: 607668

URL: http://svn.apache.org/viewvc?rev=607668&view=rev
Log:
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.

Backport: r607666

Modified:
    httpd/httpd/branches/2.0.x/server/log.c

Modified: httpd/httpd/branches/2.0.x/server/log.c
URL: http://svn.apache.org/viewvc/httpd/httpd/branches/2.0.x/server/log.c?rev=607668&r1=607667&r2=607668&view=diff
==============================================================================
--- httpd/httpd/branches/2.0.x/server/log.c (original)
+++ httpd/httpd/branches/2.0.x/server/log.c Sun Dec 30 21:01:05 2007
@@ -165,15 +165,26 @@
     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)