shane           Sun Oct 13 04:34:27 2002 EDT

  Modified files:              
    /php4/sapi/cgi/libfcgi      os_unix.c 
  Log:
  fixes for unix, untested
  remove exit calls
  fix a couple function definitions
  
  
Index: php4/sapi/cgi/libfcgi/os_unix.c
diff -u php4/sapi/cgi/libfcgi/os_unix.c:1.1 php4/sapi/cgi/libfcgi/os_unix.c:1.2
--- php4/sapi/cgi/libfcgi/os_unix.c:1.1 Sun Mar 10 16:39:28 2002
+++ php4/sapi/cgi/libfcgi/os_unix.c     Sun Oct 13 04:34:27 2002
@@ -17,7 +17,7 @@
  */
 
 #ifndef lint
-static const char rcsid[] = "$Id: os_unix.c,v 1.1 2002/03/10 21:39:28 shane Exp $";
+static const char rcsid[] = "$Id: os_unix.c,v 1.2 2002/10/13 08:34:27 shane Exp $";
 #endif /* not lint */
 
 #include "fcgi_config.h"
@@ -272,6 +272,7 @@
  *   on Unix for local process communication.  It will create a
  *   domain socket or a TCP/IP socket bound to "localhost" and return
  *   a file descriptor to it to the caller.
+ *   bCreateMutex is ignored for unix
  *
  * Results:
  *      Listener socket created.  This call returns either a valid
@@ -282,7 +283,7 @@
  *
  *----------------------------------------------------------------------
  */
-int OS_CreateLocalIpcFd(const char *bindPath, int backlog)
+int OS_CreateLocalIpcFd(const char *bindPath, int backlog, int bCreateMutex)
 {
     int listenSock, servLen;
     union   SockAddrUnion sa;
@@ -311,12 +312,12 @@
          hep = gethostbyname(host);
          if ((!hep) || (hep->h_addrtype != AF_INET || !hep->h_addr_list[0])) {
            fprintf(stderr, "Cannot resolve host name %s -- exiting!\n", host);
-           exit(1);
+           return -1;
          }
          if (hep->h_addr_list[1]) {
            fprintf(stderr, "Host %s has multiple addresses ---\n", host);
            fprintf(stderr, "you must choose one explicitly!!!\n");
-           exit(1);
+           return -1;
          }
          tcp_ia = ((struct in_addr *) (hep->h_addr))->s_addr;
        }
@@ -330,7 +331,7 @@
             if(setsockopt(listenSock, SOL_SOCKET, SO_REUSEADDR,
                           (char *) &flag, sizeof(flag)) < 0) {
                 fprintf(stderr, "Can't set SO_REUSEADDR.\n");
-               exit(1001);
+               return -1;
            }
        }
     } else {
@@ -353,13 +354,13 @@
        unlink(bindPath);
        if(OS_BuildSockAddrUn(bindPath, &sa.unixVariant, &servLen)) {
            fprintf(stderr, "Listening socket's path name is too long.\n");
-           exit(1000);
+           return -1;
        }
     }
     if(bind(listenSock, (struct sockaddr *) &sa.unixVariant, servLen) < 0
        || listen(listenSock, backlog) < 0) {
        perror("bind/listen");
-        exit(errno);
+        return -1;
     }
 
     return listenSock;
@@ -408,7 +409,7 @@
        struct  hostent *hp;
        if((hp = gethostbyname((*host ? host : "localhost"))) == NULL) {
            fprintf(stderr, "Unknown host: %s\n", bindPath);
-           exit(1000);
+           return -1;
        }
        sa.inetVariant.sin_family = AF_INET;
        memcpy(&sa.inetVariant.sin_addr, hp->h_addr, hp->h_length);
@@ -418,7 +419,7 @@
     } else {
        if(OS_BuildSockAddrUn(bindPath, &sa.unixVariant, &servLen)) {
            fprintf(stderr, "Listening socket's path name is too long.\n");
-           exit(1000);
+           return -1;
        }
        resultSock = socket(AF_UNIX, SOCK_STREAM, 0);
     }
@@ -497,13 +498,13 @@
  *
  *----------------------------------------------------------------------
  */
-int OS_SpawnChild(char *appPath, int listenFd)
+int OS_SpawnChild(char *appPath, int listenFd, PROCESS_INFORMATION *pInfo, char *env)
 {
     int forkResult;
 
     forkResult = fork();
     if(forkResult < 0) {
-        exit(errno);
+        return -1;
     }
 
     if(forkResult == 0) {
@@ -542,7 +543,7 @@
         *
         * perror("exec");
         */
-       exit(errno);
+       return -1;
     }
     return 0;
 }
@@ -818,7 +819,9 @@
         selectStatus = select((maxFd+1), &readFdSetCpy, &writeFdSetCpy,
                               NULL, tmo);
         if(selectStatus < 0) {
-            exit(errno);
+            /*exit(errno);*/
+                       /* not sure what's best to do here */
+                       return -1;
        }
 
         for(fd = 0; fd <= maxFd; fd++) {
@@ -1256,10 +1259,10 @@
 {
     int val;
     if((val = fcntl(fd, F_GETFL, 0)) < 0) {
-        exit(errno);
+        return;
     }
     val |= flags;
     if(fcntl(fd, F_SETFL, val) < 0) {
-        exit(errno);
+        return;
     }
 }



-- 
PHP CVS Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to