| /* |
| * fastcgi.h -- |
| * |
| * Defines for the FastCGI protocol. |
| * |
| * |
| * Copyright (c) 1995-1996 Open Market, Inc. |
| * |
| * See the file "LICENSE.TERMS" for information on usage and redistribution |
| * of this file, and for a DISCLAIMER OF ALL WARRANTIES. |
| * |
| * $Id: fastcgi.h,v 1.1.1.1 2003/10/18 09:54:10 weigon Exp $ |
| */ |
| |
| #ifndef _FASTCGI_H |
| #define _FASTCGI_H |
| |
| /* |
| * Listening socket file number |
| */ |
| #define FCGI_LISTENSOCK_FILENO 0 |
| |
| typedef struct { |
| unsigned char version; |
| unsigned char type; |
| unsigned char requestIdB1; |
| unsigned char requestIdB0; |
| unsigned char contentLengthB1; |
| unsigned char contentLengthB0; |
| unsigned char paddingLength; |
| unsigned char reserved; |
| } FCGI_Header; |
| |
| #define FCGI_MAX_LENGTH 0xffff |
| |
| /* |
| * Number of bytes in a FCGI_Header. Future versions of the protocol |
| * will not reduce this number. |
| */ |
| #define FCGI_HEADER_LEN 8 |
| |
| /* |
| * Value for version component of FCGI_Header |
| */ |
| #define FCGI_VERSION_1 1 |
| |
| /* |
| * Values for type component of FCGI_Header |
| */ |
| #define FCGI_BEGIN_REQUEST 1 |
| #define FCGI_ABORT_REQUEST 2 |
| #define FCGI_END_REQUEST 3 |
| #define FCGI_PARAMS 4 |
| #define FCGI_STDIN 5 |
| #define FCGI_STDOUT 6 |
| #define FCGI_STDERR 7 |
| #define FCGI_DATA 8 |
| #define FCGI_GET_VALUES 9 |
| #define FCGI_GET_VALUES_RESULT 10 |
| #define FCGI_UNKNOWN_TYPE 11 |
| #define FCGI_MAXTYPE (FCGI_UNKNOWN_TYPE) |
| |
| /* |
| * Value for requestId component of FCGI_Header |
| */ |
| #define FCGI_NULL_REQUEST_ID 0 |
| |
| |
| typedef struct { |
| unsigned char roleB1; |
| unsigned char roleB0; |
| unsigned char flags; |
| unsigned char reserved[5]; |
| } FCGI_BeginRequestBody; |
| |
| typedef struct { |
| FCGI_Header header; |
| FCGI_BeginRequestBody body; |
| } FCGI_BeginRequestRecord; |
| |
| /* |
| * Mask for flags component of FCGI_BeginRequestBody |
| */ |
| #define FCGI_KEEP_CONN 1 |
| |
| /* |
| * Values for role component of FCGI_BeginRequestBody |
| */ |
| #define FCGI_RESPONDER 1 |
| #define FCGI_AUTHORIZER 2 |
| #define FCGI_FILTER 3 |
| |
| |
| typedef struct { |
| unsigned char appStatusB3; |
| unsigned char appStatusB2; |
| unsigned char appStatusB1; |
| unsigned char appStatusB0; |
| unsigned char protocolStatus; |
| unsigned char reserved[3]; |
| } FCGI_EndRequestBody; |
| |
| typedef struct { |
| FCGI_Header header; |
| FCGI_EndRequestBody body; |
| } FCGI_EndRequestRecord; |
| |
| /* |
| * Values for protocolStatus component of FCGI_EndRequestBody |
| */ |
| #define FCGI_REQUEST_COMPLETE 0 |
| #define FCGI_CANT_MPX_CONN 1 |
| #define FCGI_OVERLOADED 2 |
| #define FCGI_UNKNOWN_ROLE 3 |
| |
| |
| /* |
| * Variable names for FCGI_GET_VALUES / FCGI_GET_VALUES_RESULT records |
| */ |
| #define FCGI_MAX_CONNS "FCGI_MAX_CONNS" |
| #define FCGI_MAX_REQS "FCGI_MAX_REQS" |
| #define FCGI_MPXS_CONNS "FCGI_MPXS_CONNS" |
| |
| |
| typedef struct { |
| unsigned char type; |
| unsigned char reserved[7]; |
| } FCGI_UnknownTypeBody; |
| |
| typedef struct { |
| FCGI_Header header; |
| FCGI_UnknownTypeBody body; |
| } FCGI_UnknownTypeRecord; |
| |
| #endif /* _FASTCGI_H */ |
| |