fix copyright information in these files
[catagits/fcgi2.git] / cgi-fcgi / cgi-fcgi.c
index 11efaec..a5c75b1 100644 (file)
@@ -6,12 +6,12 @@
  *
  * Copyright (c) 1996 Open Market, Inc.
  *
- * See the file "LICENSE.TERMS" for information on usage and redistribution
+ * See the file "LICENSE" for information on usage and redistribution
  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
  *
  */
 #ifndef lint
-static const char rcsid[] = "$Id: cgi-fcgi.c,v 1.11 2001/06/19 17:12:01 robs Exp $";
+static const char rcsid[] = "$Id: cgi-fcgi.c,v 1.16 2003/06/22 02:02:33 robs Exp $";
 #endif /* not lint */
 
 #include <assert.h>
@@ -21,7 +21,6 @@ static const char rcsid[] = "$Id: cgi-fcgi.c,v 1.11 2001/06/19 17:12:01 robs Exp
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
-#include <io.h>
 
 #include "fcgi_config.h"
 
@@ -31,6 +30,7 @@ static const char rcsid[] = "$Id: cgi-fcgi.c,v 1.11 2001/06/19 17:12:01 robs Exp
 
 #ifdef _WIN32
 #include <stdlib.h>
+#include <io.h>
 #else
 extern char **environ;
 #endif
@@ -43,13 +43,12 @@ extern char **environ;
 #include <sys/time.h>
 #endif
 
-#if defined HAVE_UNISTD_H
+#ifdef HAVE_UNISTD_H
 #include <unistd.h>
 #endif
 
 #include "fcgimisc.h"
 #include "fcgiapp.h"
-#include "fcgiappmisc.h"
 #include "fastcgi.h"
 #include "fcgios.h"
 
@@ -112,12 +111,12 @@ static FCGI_Header MakeHeader(
     ASSERT(contentLength >= 0 && contentLength <= FCGI_MAX_LENGTH);
     ASSERT(paddingLength >= 0 && paddingLength <= 0xff);
     header.version = FCGI_VERSION_1;
-    header.type             =  type;
-    header.requestIdB1      = (requestId      >> 8) & 0xff;
-    header.requestIdB0      = (requestId          ) & 0xff;
-    header.contentLengthB1  = (contentLength  >> 8) & 0xff;
-    header.contentLengthB0  = (contentLength      ) & 0xff;
-    header.paddingLength    =  paddingLength;
+    header.type             = (unsigned char) type;
+    header.requestIdB1      = (unsigned char) ((requestId     >> 8) & 0xff);
+    header.requestIdB0      = (unsigned char) ((requestId         ) & 0xff);
+    header.contentLengthB1  = (unsigned char) ((contentLength >> 8) & 0xff);
+    header.contentLengthB0  = (unsigned char) ((contentLength     ) & 0xff);
+    header.paddingLength    = (unsigned char) paddingLength;
     header.reserved         =  0;
     return header;
 }
@@ -137,9 +136,9 @@ static FCGI_BeginRequestBody MakeBeginRequestBody(
 {
     FCGI_BeginRequestBody body;
     ASSERT((role >> 16) == 0);
-    body.roleB1 = (role >>  8) & 0xff;
-    body.roleB0 = (role      ) & 0xff;
-    body.flags = (keepConnection) ? FCGI_KEEP_CONN : 0;
+    body.roleB1 = (unsigned char) ((role >>  8) & 0xff);
+    body.roleB0 = (unsigned char) (role         & 0xff);
+    body.flags  = (unsigned char) ((keepConnection) ? FCGI_KEEP_CONN : 0);
     memset(body.reserved, 0, sizeof(body.reserved));
     return body;
 }
@@ -189,7 +188,7 @@ static int stdinFds[3];
 static void FCGIexit(int exitCode)
 {
     if(appServerSock != -1) {
-        OS_Close(appServerSock);
+        OS_Close(appServerSock, TRUE);
        appServerSock = -1;
     }
     OS_LibShutdown();
@@ -213,11 +212,14 @@ static void FCGIexit(int exitCode)
  *----------------------------------------------------------------------
  */
 
-static void AppServerReadHandler(ClientData clientData, int bytesRead)
+static void AppServerReadHandler(ClientData dc, int bytesRead)
 {
     int count, outFD;
     char *ptr;
 
+    /* Touch unused parameters to avoid warnings */
+    dc = NULL;
+
     assert(fcgiReadPending == TRUE);
     fcgiReadPending = FALSE;
     count = bytesRead;
@@ -230,7 +232,7 @@ static void AppServerReadHandler(ClientData clientData, int bytesRead)
             exit(FCGX_PROTOCOL_ERROR);
         }
        if(appServerSock != -1) {
-           OS_Close(appServerSock);
+           OS_Close(appServerSock, TRUE);
            appServerSock = -1;
        }
         /*
@@ -371,8 +373,11 @@ static void WriteStdinEof(void)
  *----------------------------------------------------------------------
  */
 
-static void WebServerReadHandler(ClientData clientData, int bytesRead)
+static void WebServerReadHandler(ClientData dc, int bytesRead)
 {
+    /* Touch unused parameters to avoid warnings */
+    dc = NULL;
+
     assert(fromWS.next == fromWS.stop);
     assert(fromWS.next == &fromWS.buff[0]);
     assert(wsReadPending == TRUE);
@@ -405,10 +410,13 @@ static void WebServerReadHandler(ClientData clientData, int bytesRead)
  *----------------------------------------------------------------------
  */
 
-static void AppServerWriteHandler(ClientData clientData, int bytesWritten)
+static void AppServerWriteHandler(ClientData dc, int bytesWritten)
 {
     int length = fromWS.stop - fromWS.next;
 
+    /* Touch unused parameters to avoid warnings */
+    dc = NULL;
+
     assert(length > 0);
     assert(fcgiWritePending == TRUE);
 
@@ -523,7 +531,7 @@ static void FCGI_Start(char *bindPath, char *appPath, int nServers)
             exit(OS_Errno);
        }
     }
-    OS_Close(listenFd);
+    OS_Close(listenFd, TRUE);
 }
 \f
 /*
@@ -551,21 +559,21 @@ static void FCGIUtil_BuildNameValueHeader(
 
     ASSERT(nameLen >= 0);
     if (nameLen < 0x80) {
-        *headerBuffPtr++ = nameLen;
+        *headerBuffPtr++ = (unsigned char) nameLen;
     } else {
-        *headerBuffPtr++ = (nameLen >> 24) | 0x80;
-        *headerBuffPtr++ = (nameLen >> 16);
-        *headerBuffPtr++ = (nameLen >> 8);
-        *headerBuffPtr++ = nameLen;
+        *headerBuffPtr++ = (unsigned char) ((nameLen >> 24) | 0x80);
+        *headerBuffPtr++ = (unsigned char) (nameLen >> 16);
+        *headerBuffPtr++ = (unsigned char) (nameLen >> 8);
+        *headerBuffPtr++ = (unsigned char) nameLen;
     }
     ASSERT(valueLen >= 0);
     if (valueLen < 0x80) {
-        *headerBuffPtr++ = valueLen;
+        *headerBuffPtr++ = (unsigned char) valueLen;
     } else {
-        *headerBuffPtr++ = (valueLen >> 24) | 0x80;
-        *headerBuffPtr++ = (valueLen >> 16);
-        *headerBuffPtr++ = (valueLen >> 8);
-        *headerBuffPtr++ = valueLen;
+        *headerBuffPtr++ = (unsigned char) ((valueLen >> 24) | 0x80);
+        *headerBuffPtr++ = (unsigned char) (valueLen >> 16);
+        *headerBuffPtr++ = (unsigned char) (valueLen >> 8);
+        *headerBuffPtr++ = (unsigned char) valueLen;
     }
     *headerLenPtr = headerBuffPtr - startHeaderBuffPtr;
 }
@@ -788,7 +796,7 @@ int main(int argc, char **argv)
     /*
      * Send environment to the FCGI application server
      */
-    paramsStream = CreateWriter(appServerSock, requestId, 8192, FCGI_PARAMS);
+    paramsStream = FCGX_CreateWriter(appServerSock, requestId, 8192, FCGI_PARAMS);
     for( ; *envp != NULL; envp++) {
         equalPtr = strchr(*envp, '=');
         if(equalPtr  == NULL) {
@@ -807,7 +815,7 @@ int main(int argc, char **argv)
         }
     }
     FCGX_FClose(paramsStream);
-    FreeStream(&paramsStream);
+    FCGX_FreeStream(&paramsStream);
     /*
      * Perform the event loop until AppServerReadHander sees FCGI_END_REQUEST
      */