>Number:         1395
>Category:       os-windows
>Synopsis:       FIX for PR numbers #939,951,1131 (WinSock Errors in CGI 
>programs)
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    apache
>State:          open
>Class:          sw-bug
>Submitter-Id:   apache
>Arrival-Date:   Tue Nov 11 12:20:00 PST 1997
>Last-Modified:
>Originator:     [EMAIL PROTECTED]
>Organization:
apache
>Release:        1.3b2
>Environment:
NT 4.0, Win 95, Microsoft Visual C++ 5.0
>Description:
PR #'s 939, 951, and 1131 are all related to the fact that CGI applications
cannot use Windows Sockets.  Apparently (and I have not seen this documented
anywhere... Go Microsoft) you have to set the SystemRoot, COMSPEC, and WINDIR 
environment variables for Windows Sockets to work correctly.  The patch below
adds these in util_script.c.
>How-To-Repeat:
See PR #'s 939, 951, and 1131
>Fix:
*** util_script.c.orig  Mon Nov 10 22:51:27 1997
--- util_script.c       Tue Nov 11 13:44:55 1997
***************
*** 163,168 ****
--- 163,171 ----
      const char *rem_logname;
  
      char port[40], *env_path;
+ #ifdef WIN32
+     char *env_temp;
+ #endif
  
      array_header *hdrs_arr = table_elts(r->headers_in);
      table_entry *hdrs = (table_entry *) hdrs_arr->elts;
***************
*** 197,202 ****
--- 200,214 ----
      if (!(env_path = getenv("PATH")))
        env_path = DEFAULT_PATH;
  
+ #ifdef WIN32
+     if (env_temp = getenv("SystemRoot"))
+         table_set(e, "SystemRoot", env_temp);         
+     if (env_temp = getenv("COMSPEC"))
+         table_set(e, "COMSPEC", env_temp);            
+     if (env_temp = getenv("WINDIR"))
+         table_set(e, "WINDIR", env_temp);             
+ #endif
+ 
      table_set(e, "PATH", env_path);
      table_set(e, "SERVER_SOFTWARE", SERVER_VERSION);
      table_set(e, "SERVER_NAME", s->server_hostname)%3
>Audit-Trail:
>Unformatted:

Reply via email to