Re: apache 2.2+fastcgi+cgicc

Tom Donovan <[email protected]>
Newsgroups gmane.comp.web.fastcgi.devel
Message-ID <[email protected]>
Jay Sprenkle wrote:
> Good evening all,
> 
> I'm trying to get a fastcgi+cgicc application working and I've run
> into a snag. I'm not sure if it's a bug or I'm using the code
> incorrectly. Any suggestions would be appreciated.
> 
> Here's the setup:
> Apache 2.x (latest version, running on windows xp) is configured to
> start a single instance of my fastcgi application and communicate over
> a tcp connection. I picked a random port in the 9000 range.
> 
...
> 
>     if((GetStdHandle(STD_OUTPUT_HANDLE) == INVALID_HANDLE_VALUE) &&
>        (GetStdHandle(STD_ERROR_HANDLE)  == INVALID_HANDLE_VALUE) &&
>        (GetStdHandle(STD_INPUT_HANDLE)  != INVALID_HANDLE_VALUE) )
> 
> Is this a bug in the fastcgi dll/Apache or am I using it wrong?
> 

Apache 2.2.9 included APR 1.3, which introduced an incompatible change to the way processes are 
created on Windows.  You will need to change mod_fastcgi and rebuild it for Apache 2.2.9 or higher.

Starting with Apache 2.2.9, it is necessary to call apr_procattr_io_set() to correctly configure 
stdin, stdout, and stderr for fastcgi programs before calling apr_procattr_child_in_set().

Here is a patch to fcgi_pm.c which will make mod_fastcgi compatible with Apache 2.2.9+.
The patch affects the WIN32 portion of fcgi_pm.c, as this problem is specific to Windows.

-tom-

--- fcgi_pm.c	2004-04-14 22:01:26.000000000 -0400
+++ fcgi_pm.c	2008-08-26 08:22:15.856008700 -0400
@@ -559,6 +559,10 @@
      if (apr_os_file_put(&file, &listen_handle, 0, tp))
          goto CLEANUP;

+    /* required for APR 1.3+ */
+    if (apr_procattr_io_set(procattr, APR_FULL_BLOCK, APR_NO_FILE, APR_NO_FILE))
+        goto CLEANUP;
+
      /* procattr is opaque so we have to use this - unfortuantely it dups */
      if (apr_procattr_child_in_set(procattr, file, NULL))
          goto CLEANUP;
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.