Annotation of embedaddon/php/sapi/cgi/fastcgi.h, revision 1.1

1.1     ! misho       1: /*
        !             2:    +----------------------------------------------------------------------+
        !             3:    | PHP Version 5                                                        |
        !             4:    +----------------------------------------------------------------------+
        !             5:    | Copyright (c) 1997-2012 The PHP Group                                |
        !             6:    +----------------------------------------------------------------------+
        !             7:    | This source file is subject to version 3.01 of the PHP license,      |
        !             8:    | that is bundled with this package in the file LICENSE, and is        |
        !             9:    | available through the world-wide-web at the following url:           |
        !            10:    | http://www.php.net/license/3_01.txt                                  |
        !            11:    | If you did not receive a copy of the PHP license and are unable to   |
        !            12:    | obtain it through the world-wide-web, please send a note to          |
        !            13:    | license@php.net so we can mail you a copy immediately.               |
        !            14:    +----------------------------------------------------------------------+
        !            15:    | Authors: Dmitry Stogov <dmitry@zend.com>                             |
        !            16:    +----------------------------------------------------------------------+
        !            17: */
        !            18: 
        !            19: /* $Id: fastcgi.h 321634 2012-01-01 13:15:04Z felipe $ */
        !            20: 
        !            21: /* FastCGI protocol */
        !            22: 
        !            23: #define FCGI_VERSION_1 1
        !            24: 
        !            25: #define FCGI_MAX_LENGTH 0xffff
        !            26: 
        !            27: #define FCGI_KEEP_CONN  1
        !            28: 
        !            29: typedef enum _fcgi_role {
        !            30:        FCGI_RESPONDER  = 1,
        !            31:        FCGI_AUTHORIZER = 2,
        !            32:        FCGI_FILTER             = 3
        !            33: } fcgi_role;
        !            34: 
        !            35: typedef enum _fcgi_request_type {
        !            36:        FCGI_BEGIN_REQUEST              =  1, /* [in]                              */
        !            37:        FCGI_ABORT_REQUEST              =  2, /* [in]  (not supported)             */
        !            38:        FCGI_END_REQUEST                =  3, /* [out]                             */
        !            39:        FCGI_PARAMS                             =  4, /* [in]  environment variables       */
        !            40:        FCGI_STDIN                              =  5, /* [in]  post data                   */
        !            41:        FCGI_STDOUT                             =  6, /* [out] response                    */
        !            42:        FCGI_STDERR                             =  7, /* [out] errors                      */
        !            43:        FCGI_DATA                               =  8, /* [in]  filter data (not supported) */
        !            44:        FCGI_GET_VALUES                 =  9, /* [in]                              */
        !            45:        FCGI_GET_VALUES_RESULT  = 10  /* [out]                             */
        !            46: } fcgi_request_type;
        !            47: 
        !            48: typedef enum _fcgi_protocol_status {
        !            49:        FCGI_REQUEST_COMPLETE   = 0,
        !            50:        FCGI_CANT_MPX_CONN              = 1,
        !            51:        FCGI_OVERLOADED                 = 2,
        !            52:        FCGI_UNKNOWN_ROLE               = 3
        !            53: } dcgi_protocol_status;
        !            54: 
        !            55: typedef struct _fcgi_header {
        !            56:        unsigned char version;
        !            57:        unsigned char type;
        !            58:        unsigned char requestIdB1;
        !            59:        unsigned char requestIdB0;
        !            60:        unsigned char contentLengthB1;
        !            61:        unsigned char contentLengthB0;
        !            62:        unsigned char paddingLength;
        !            63:        unsigned char reserved;
        !            64: } fcgi_header;
        !            65: 
        !            66: typedef struct _fcgi_begin_request {
        !            67:        unsigned char roleB1;
        !            68:        unsigned char roleB0;
        !            69:        unsigned char flags;
        !            70:        unsigned char reserved[5];
        !            71: } fcgi_begin_request;
        !            72: 
        !            73: typedef struct _fcgi_begin_request_rec {
        !            74:        fcgi_header hdr;
        !            75:        fcgi_begin_request body;
        !            76: } fcgi_begin_request_rec;
        !            77: 
        !            78: typedef struct _fcgi_end_request {
        !            79:     unsigned char appStatusB3;
        !            80:     unsigned char appStatusB2;
        !            81:     unsigned char appStatusB1;
        !            82:     unsigned char appStatusB0;
        !            83:     unsigned char protocolStatus;
        !            84:     unsigned char reserved[3];
        !            85: } fcgi_end_request;
        !            86: 
        !            87: typedef struct _fcgi_end_request_rec {
        !            88:        fcgi_header hdr;
        !            89:        fcgi_end_request body;
        !            90: } fcgi_end_request_rec;
        !            91: 
        !            92: /* FastCGI client API */
        !            93: 
        !            94: typedef struct _fcgi_request {
        !            95:        int            listen_socket;
        !            96: #ifdef _WIN32
        !            97:        int            tcp;
        !            98: #endif
        !            99:        int            fd;
        !           100:        int            id;
        !           101:        int            keep;
        !           102:        int            closed;
        !           103: 
        !           104:        int            in_len;
        !           105:        int            in_pad;
        !           106: 
        !           107:        fcgi_header   *out_hdr;
        !           108:        unsigned char *out_pos;
        !           109:        unsigned char  out_buf[1024*8];
        !           110:        unsigned char  reserved[sizeof(fcgi_end_request_rec)];
        !           111: 
        !           112:        HashTable     *env;
        !           113: } fcgi_request;
        !           114: 
        !           115: int fcgi_init(void);
        !           116: void fcgi_shutdown(void);
        !           117: int fcgi_is_fastcgi(void);
        !           118: int fcgi_in_shutdown(void);
        !           119: int fcgi_listen(const char *path, int backlog);
        !           120: void fcgi_init_request(fcgi_request *req, int listen_socket);
        !           121: int fcgi_accept_request(fcgi_request *req);
        !           122: int fcgi_finish_request(fcgi_request *req, int force_close);
        !           123: 
        !           124: char* fcgi_getenv(fcgi_request *req, const char* var, int var_len);
        !           125: char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val);
        !           126: 
        !           127: int fcgi_read(fcgi_request *req, char *str, int len);
        !           128: 
        !           129: int fcgi_write(fcgi_request *req, fcgi_request_type type, const char *str, int len);
        !           130: int fcgi_flush(fcgi_request *req, int close);
        !           131: 
        !           132: #ifdef PHP_WIN32
        !           133: void fcgi_impersonate(void);
        !           134: #endif
        !           135: 
        !           136: void fcgi_set_mgmt_var(const char * name, size_t name_len, const char * value, size_t value_len);
        !           137: void fcgi_free_mgmt_var_cb(void * ptr);
        !           138: 
        !           139: /*
        !           140:  * Local variables:
        !           141:  * tab-width: 4
        !           142:  * c-basic-offset: 4
        !           143:  * End:
        !           144:  * vim600: sw=4 ts=4 fdm=marker
        !           145:  * vim<600: sw=4 ts=4
        !           146:  */

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