Annotation of embedaddon/lighttpd/src/fastcgi.h, revision 1.1.1.1

1.1       misho       1: /*
                      2:  * fastcgi.h --
                      3:  *
                      4:  *     Defines for the FastCGI protocol.
                      5:  *
                      6:  *
                      7:  * Copyright (c) 1995-1996 Open Market, Inc.
                      8:  *
                      9:  * See the file "LICENSE.TERMS" for information on usage and redistribution
                     10:  * of this file, and for a DISCLAIMER OF ALL WARRANTIES.
                     11:  *
                     12:  * $Id: fastcgi.h,v 1.1.1.1 2003/10/18 09:54:10 weigon Exp $
                     13:  */
                     14: 
                     15: #ifndef _FASTCGI_H
                     16: #define _FASTCGI_H
                     17: 
                     18: /*
                     19:  * Listening socket file number
                     20:  */
                     21: #define FCGI_LISTENSOCK_FILENO 0
                     22: 
                     23: typedef struct {
                     24:     unsigned char version;
                     25:     unsigned char type;
                     26:     unsigned char requestIdB1;
                     27:     unsigned char requestIdB0;
                     28:     unsigned char contentLengthB1;
                     29:     unsigned char contentLengthB0;
                     30:     unsigned char paddingLength;
                     31:     unsigned char reserved;
                     32: } FCGI_Header;
                     33: 
                     34: #define FCGI_MAX_LENGTH 0xffff
                     35: 
                     36: /*
                     37:  * Number of bytes in a FCGI_Header.  Future versions of the protocol
                     38:  * will not reduce this number.
                     39:  */
                     40: #define FCGI_HEADER_LEN  8
                     41: 
                     42: /*
                     43:  * Value for version component of FCGI_Header
                     44:  */
                     45: #define FCGI_VERSION_1           1
                     46: 
                     47: /*
                     48:  * Values for type component of FCGI_Header
                     49:  */
                     50: #define FCGI_BEGIN_REQUEST       1
                     51: #define FCGI_ABORT_REQUEST       2
                     52: #define FCGI_END_REQUEST         3
                     53: #define FCGI_PARAMS              4
                     54: #define FCGI_STDIN               5
                     55: #define FCGI_STDOUT              6
                     56: #define FCGI_STDERR              7
                     57: #define FCGI_DATA                8
                     58: #define FCGI_GET_VALUES          9
                     59: #define FCGI_GET_VALUES_RESULT  10
                     60: #define FCGI_UNKNOWN_TYPE       11
                     61: #define FCGI_MAXTYPE (FCGI_UNKNOWN_TYPE)
                     62: 
                     63: /*
                     64:  * Value for requestId component of FCGI_Header
                     65:  */
                     66: #define FCGI_NULL_REQUEST_ID     0
                     67: 
                     68: 
                     69: typedef struct {
                     70:     unsigned char roleB1;
                     71:     unsigned char roleB0;
                     72:     unsigned char flags;
                     73:     unsigned char reserved[5];
                     74: } FCGI_BeginRequestBody;
                     75: 
                     76: typedef struct {
                     77:     FCGI_Header header;
                     78:     FCGI_BeginRequestBody body;
                     79: } FCGI_BeginRequestRecord;
                     80: 
                     81: /*
                     82:  * Mask for flags component of FCGI_BeginRequestBody
                     83:  */
                     84: #define FCGI_KEEP_CONN  1
                     85: 
                     86: /*
                     87:  * Values for role component of FCGI_BeginRequestBody
                     88:  */
                     89: #define FCGI_RESPONDER  1
                     90: #define FCGI_AUTHORIZER 2
                     91: #define FCGI_FILTER     3
                     92: 
                     93: 
                     94: typedef struct {
                     95:     unsigned char appStatusB3;
                     96:     unsigned char appStatusB2;
                     97:     unsigned char appStatusB1;
                     98:     unsigned char appStatusB0;
                     99:     unsigned char protocolStatus;
                    100:     unsigned char reserved[3];
                    101: } FCGI_EndRequestBody;
                    102: 
                    103: typedef struct {
                    104:     FCGI_Header header;
                    105:     FCGI_EndRequestBody body;
                    106: } FCGI_EndRequestRecord;
                    107: 
                    108: /*
                    109:  * Values for protocolStatus component of FCGI_EndRequestBody
                    110:  */
                    111: #define FCGI_REQUEST_COMPLETE 0
                    112: #define FCGI_CANT_MPX_CONN    1
                    113: #define FCGI_OVERLOADED       2
                    114: #define FCGI_UNKNOWN_ROLE     3
                    115: 
                    116: 
                    117: /*
                    118:  * Variable names for FCGI_GET_VALUES / FCGI_GET_VALUES_RESULT records
                    119:  */
                    120: #define FCGI_MAX_CONNS  "FCGI_MAX_CONNS"
                    121: #define FCGI_MAX_REQS   "FCGI_MAX_REQS"
                    122: #define FCGI_MPXS_CONNS "FCGI_MPXS_CONNS"
                    123: 
                    124: 
                    125: typedef struct {
                    126:     unsigned char type;
                    127:     unsigned char reserved[7];
                    128: } FCGI_UnknownTypeBody;
                    129: 
                    130: typedef struct {
                    131:     FCGI_Header header;
                    132:     FCGI_UnknownTypeBody body;
                    133: } FCGI_UnknownTypeRecord;
                    134: 
                    135: #endif /* _FASTCGI_H */
                    136: 

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>