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>