pcs         97/10/20 13:02:21

  Modified:    src/main alloc.c
  Log:
  Prevent unnecessary "premature end of headers" errors on Win32 by
  correctly spotting if a spawned CGI fails, and if so, using the
  normal Unix logging to note it. Specifically make the Win32 error return
  value from spawn*() of -1 onto the Unix error value of 0 within the
  Win32 code.
  
  Revision  Changes    Path
  1.53      +4 -5      apachen/src/main/alloc.c
  
  Index: alloc.c
  ===================================================================
  RCS file: /export/home/cvs/apachen/src/main/alloc.c,v
  retrieving revision 1.52
  retrieving revision 1.53
  diff -u -r1.52 -r1.53
  --- alloc.c   1997/10/20 12:08:58     1.52
  +++ alloc.c   1997/10/20 20:02:20     1.53
  @@ -1301,8 +1301,9 @@
        }
   
        pid = (*func) (data);
  -     if (pid == -1) {
  -         /* If we are going to save it, we ought to do something with it 
later, right? - Ben */
  +        if (pid == -1) pid = 0;     // map Win32 error code onto Unix default
  +
  +        if (!pid) {
            save_errno = errno;
            close(in_fds[1]);
            close(out_fds[0]);
  @@ -1317,9 +1318,7 @@
        if (pipe_err)
            dup2(hStdErr, fileno(stderr));
   
  -     if(pid == -1)
  -         aplog_error(APLOG_MARK, APLOG_ERR, NULL, "spawn failed");
  -     else {
  +        if (pid) {
            note_subprocess(p, pid, kill_how);
            if (pipe_in) {
                *pipe_in = in_fds[1];
  
  
  

Reply via email to