Subject: Re: lighttpd - problems with cgi scripts
From: Brian Dessent <[email-masked]>
To: [email-masked]
Cc: [email-masked]
Date: Sat, 25 Sep 2004 18:52:29 -0700

"Gerrit P. Haase" wrote:

> That works, thanks for pointing this out, however, lighttpd should
> simply give back an error instead of burning my cpu.

I agree.

> 
> > This sounds suspiciously like the "SYSTEMROOT being removed from the
> > environment" problem.
> 
> Hmmm, SYSTEMROOT:
> $ set | grep SYSTEMROOT
> SYSTEMROOT='C:\WINNT'

That's from a normal shell prompt though, right?  It must be set in the
environment of the CGI script that's forked from the lighttpd.  Try a
simple CGI that just runs "printenv" and see if it's set there.  The
reason it seems to come up in CGI scripts is that often the environment
is cleansed of all but certain permitted variables, and it seems that
SYSTEMROOT is the casualty of this.  It's a situation particular to
Cygwin, as win32 native code would know not to remove it, whereas its
meaningless to stuff written for posix/unix.

> Doesn't a cygwin application need to know about CYGWIN_ROOT instead of
> SYSTEMROOT?
> 
> I'll see if I can find the thread about it in the archives.

I've never heard of the CYGWIN_ROOT variable before.

I think the problem is that when you go to use a socket function,
eventually the win32 winsock functions get called, and they depend on
having SYSTEMROOT set in the environment.

Brian

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/