diff options
| author | Roland Reichwein <mail@reichwein.it> | 2020-05-01 11:19:21 +0200 | 
|---|---|---|
| committer | Roland Reichwein <mail@reichwein.it> | 2020-05-01 11:19:21 +0200 | 
| commit | b77bb246e366d346b55cc8cfb4f1d0ac83211ae7 (patch) | |
| tree | d3fda755578a4fb4084e2b4f02252c498201ed0e /plugins/fcgi/fastcgi.h | |
| parent | 82558fb7bfd7b0a36119d23bcd47d4cd4bd7b970 (diff) | |
Added fcgi module (WIP)
Diffstat (limited to 'plugins/fcgi/fastcgi.h')
| -rw-r--r-- | plugins/fcgi/fastcgi.h | 136 | 
1 files changed, 136 insertions, 0 deletions
diff --git a/plugins/fcgi/fastcgi.h b/plugins/fcgi/fastcgi.h new file mode 100644 index 0000000..d5b5468 --- /dev/null +++ b/plugins/fcgi/fastcgi.h @@ -0,0 +1,136 @@ +/*  + * 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 1997/09/16 15:36:32 stanleyg 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 */ +  | 
