httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Jim Jagielski <...@jaguNET.com>
Subject Re: [Patch] 1.3 - Equivilant functionallity unix <> win32
Date Wed, 13 Dec 2000 17:20:19 GMT
Makes logical sense to me.


William A. Rowe, Jr. wrote:
> 
> 
> Attached is a patch I expect to apply at noon CST unless someone objects.
> Explanation for why I trust it entirely...
> 
> We already have this identical code at line 213 of mod_cgi.c - win32
> needs to sponge the script output to the error log itself, since fork
> doesn't help us on our platform.
> 
> Two other places in mod_cgi.c sponge the stderr output from the script,
> we aren't catching the script errors in those two code blocks, although
> the unix behavior in all three places is -identical-.
> 
> This patch makes the Win32/Netware behavior in all three places 
> -identical- as well.  If one user would confirm my testing results,
> please ack me ... TIA
> 
> Bill
> 
> 
> Index: mod_cgi.c
> ===================================================================
> RCS file: /home/cvs/apache-1.3/src/modules/standard/mod_cgi.c,v
> retrieving revision 1.95
> diff -u -r1.95 mod_cgi.c
> --- mod_cgi.c	2000/11/14 09:57:20	1.95
> +++ mod_cgi.c	2000/12/13 16:33:53
> @@ -529,9 +529,19 @@
>  	    while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_in) > 0) {
>  		continue;
>  	    }
> -	    while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0) {
> -		continue;
> -	    }
> +#if defined(WIN32) || defined(NETWARE)
> +            /* Soak up stderr and redirect it to the error log.
> +             * Script output to stderr is already directed to the error log
> +             * on Unix, thanks to the magic of fork().
> +             */
> +            while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0) {
> +                ap_log_rerror(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, r, 
> +                              "%s", argsbuffer);            
> +            }
> +#else
> +	    while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0)
> +	        continue;
> +#endif
>  	    ap_kill_timeout(r);
>  
>  
> @@ -564,9 +574,18 @@
>  	ap_bclose(script_in);
>  
>  	ap_soft_timeout("soaking script stderr", r);
> -	while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0) {
> +#if defined(WIN32) || defined(NETWARE)
> +        /* Script output to stderr is already directed to the error log
> +         * on Unix, thanks to the magic of fork().
> +         */
> +        while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0) {
> +            ap_log_rerror(APLOG_MARK, APLOG_ERR | APLOG_NOERRNO, r, 
> +                          "%s", argsbuffer);            
> +        }
> +#else
> +	while (ap_bgets(argsbuffer, HUGE_STRING_LEN, script_err) > 0)
>  	    continue;
> -	}
> +#endif
>  	ap_kill_timeout(r);
>  	ap_bclose(script_err);
>      }
> 


-- 
===========================================================================
   Jim Jagielski   [|]   jim@jaguNET.com   [|]   http://www.jaguNET.com/
          "Casanova will have many weapons; To beat him you will
              have to have more than forks and flatulence."

Mime
View raw message