Annotation of embedaddon/php/sapi/litespeed/lsapidef.h, revision 1.1

1.1     ! misho       1: 
        !             2: /*
        !             3:    +----------------------------------------------------------------------+
        !             4:    | PHP Version 5                                                        |
        !             5:    +----------------------------------------------------------------------+
        !             6:    | Copyright (c) 1997-2007 The PHP Group                                |
        !             7:    +----------------------------------------------------------------------+
        !             8:    | This source file is subject to version 3.01 of the PHP license,      |
        !             9:    | that is bundled with this package in the file LICENSE, and is        |
        !            10:    | available at through the world-wide-web at the following url:        |
        !            11:    | http://www.php.net/license/3_01.txt.                                 |
        !            12:    | If you did not receive a copy of the PHP license and are unable to   |
        !            13:    | obtain it through the world-wide-web, please send a note to          |
        !            14:    | license@php.net so we can mail you a copy immediately.               |
        !            15:    +----------------------------------------------------------------------+
        !            16:    | Author: George Wang <gwang@litespeedtech.com>                        |
        !            17:    +----------------------------------------------------------------------+
        !            18: */
        !            19: 
        !            20: 
        !            21: /*
        !            22: Copyright (c) 2007, Lite Speed Technologies Inc.
        !            23: All rights reserved.
        !            24: 
        !            25: Redistribution and use in source and binary forms, with or without
        !            26: modification, are permitted provided that the following conditions are
        !            27: met: 
        !            28: 
        !            29:     * Redistributions of source code must retain the above copyright
        !            30:       notice, this list of conditions and the following disclaimer. 
        !            31:     * Redistributions in binary form must reproduce the above
        !            32:       copyright notice, this list of conditions and the following
        !            33:       disclaimer in the documentation and/or other materials provided
        !            34:       with the distribution. 
        !            35:     * Neither the name of the Lite Speed Technologies Inc nor the
        !            36:       names of its contributors may be used to endorse or promote
        !            37:       products derived from this software without specific prior
        !            38:       written permission.  
        !            39: 
        !            40: THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
        !            41: "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
        !            42: LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
        !            43: A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
        !            44: OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
        !            45: SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
        !            46: LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
        !            47: DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
        !            48: THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
        !            49: (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
        !            50: OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 
        !            51: */
        !            52: 
        !            53: 
        !            54: #ifndef  _LSAPIDEF_H_
        !            55: #define  _LSAPIDEF_H_
        !            56: 
        !            57: #include <inttypes.h>
        !            58: 
        !            59: #if defined (c_plusplus) || defined (__cplusplus)
        !            60: extern "C" {
        !            61: #endif
        !            62: 
        !            63: enum
        !            64: {
        !            65:     H_ACCEPT = 0,
        !            66:     H_ACC_CHARSET,
        !            67:     H_ACC_ENCODING,
        !            68:     H_ACC_LANG,
        !            69:     H_AUTHORIZATION,
        !            70:     H_CONNECTION,
        !            71:     H_CONTENT_TYPE,
        !            72:     H_CONTENT_LENGTH,
        !            73:     H_COOKIE,
        !            74:     H_COOKIE2,
        !            75:     H_HOST,
        !            76:     H_PRAGMA,
        !            77:     H_REFERER,
        !            78:     H_USERAGENT,
        !            79:     H_CACHE_CTRL,
        !            80:     H_IF_MODIFIED_SINCE,
        !            81:     H_IF_MATCH,
        !            82:     H_IF_NO_MATCH,
        !            83:     H_IF_RANGE,
        !            84:     H_IF_UNMOD_SINCE,
        !            85:     H_KEEP_ALIVE,
        !            86:     H_RANGE,
        !            87:     H_X_FORWARDED_FOR,
        !            88:     H_VIA,
        !            89:     H_TRANSFER_ENCODING
        !            90: 
        !            91: };
        !            92: #define LSAPI_SOCK_FILENO           0
        !            93: 
        !            94: #define LSAPI_VERSION_B0            'L'
        !            95: #define LSAPI_VERSION_B1            'S'
        !            96: 
        !            97: /* Values for m_flag in lsapi_packet_header */
        !            98: #define LSAPI_ENDIAN_LITTLE         0
        !            99: #define LSAPI_ENDIAN_BIG            1 
        !           100: #define LSAPI_ENDIAN_BIT            1
        !           101: 
        !           102: #if defined(__i386__)||defined( __x86_64 )||defined( __x86_64__ )
        !           103: #define LSAPI_ENDIAN                LSAPI_ENDIAN_LITTLE
        !           104: #else
        !           105: #define LSAPI_ENDIAN                LSAPI_ENDIAN_BIG
        !           106: #endif
        !           107: 
        !           108: /* Values for m_type in lsapi_packet_header */
        !           109: #define LSAPI_BEGIN_REQUEST         1
        !           110: #define LSAPI_ABORT_REQUEST         2
        !           111: #define LSAPI_RESP_HEADER           3
        !           112: #define LSAPI_RESP_STREAM           4
        !           113: #define LSAPI_RESP_END              5
        !           114: #define LSAPI_STDERR_STREAM         6
        !           115: #define LSAPI_REQ_RECEIVED          7
        !           116: 
        !           117: 
        !           118: #define LSAPI_MAX_HEADER_LEN        65535
        !           119: #define LSAPI_MAX_DATA_PACKET_LEN   16384
        !           120: 
        !           121: #define LSAPI_RESP_HTTP_HEADER_MAX  4096
        !           122: #define LSAPI_PACKET_HEADER_LEN     8
        !           123: 
        !           124: 
        !           125: struct lsapi_packet_header
        !           126: {
        !           127:     char    m_versionB0;      /* LSAPI protocol version */
        !           128:     char    m_versionB1;
        !           129:     char    m_type;
        !           130:     char    m_flag;
        !           131:     union
        !           132:     {
        !           133:         int32_t m_iLen;       /* include this header */
        !           134:         char    m_bytes[4];
        !           135:     }m_packetLen;
        !           136: };
        !           137: 
        !           138: /*
        !           139:     LSAPI request header packet
        !           140:     
        !           141:     1. struct lsapi_req_header
        !           142:     2. struct lsapi_http_header_index
        !           143:     3. lsapi_header_offset * unknownHeaders
        !           144:     4. org http request header
        !           145:     5. request body if available
        !           146: */
        !           147: 
        !           148: struct lsapi_req_header
        !           149: {
        !           150:     struct lsapi_packet_header m_pktHeader;
        !           151:         
        !           152:     int32_t m_httpHeaderLen;
        !           153:     int32_t m_reqBodyLen;
        !           154:     int32_t m_scriptFileOff;   /* path to the script file. */
        !           155:     int32_t m_scriptNameOff;   /* decrypted URI, without pathinfo, */
        !           156:     int32_t m_queryStringOff;  /* Query string inside env */
        !           157:     int32_t m_requestMethodOff;
        !           158:     int32_t m_cntUnknownHeaders;
        !           159:     int32_t m_cntEnv;
        !           160:     int32_t m_cntSpecialEnv;
        !           161: } ;
        !           162: 
        !           163: 
        !           164: struct lsapi_http_header_index
        !           165: {        
        !           166:     int16_t m_headerLen[H_TRANSFER_ENCODING+1];
        !           167:     int32_t m_headerOff[H_TRANSFER_ENCODING+1];
        !           168: } ;  
        !           169:  
        !           170: struct lsapi_header_offset
        !           171: {
        !           172:     int32_t nameOff;
        !           173:     int32_t nameLen;
        !           174:     int32_t valueOff;
        !           175:     int32_t valueLen;
        !           176: } ;
        !           177: 
        !           178: struct lsapi_resp_info
        !           179: {
        !           180:     int32_t m_cntHeaders;
        !           181:     int32_t m_status;
        !           182: };
        !           183: 
        !           184: struct lsapi_resp_header
        !           185: {
        !           186:     struct  lsapi_packet_header  m_pktHeader;
        !           187:     struct  lsapi_resp_info      m_respInfo;
        !           188: };
        !           189: 
        !           190: #if defined (c_plusplus) || defined (__cplusplus)
        !           191: }
        !           192: #endif
        !           193: 
        !           194: 
        !           195: #endif
        !           196: 

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