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

1.1       misho       1: 
                      2: /*
                      3:    +----------------------------------------------------------------------+
                      4:    | PHP Version 5                                                        |
                      5:    +----------------------------------------------------------------------+
1.1.1.2 ! misho       6:    | Copyright (c) 1997-2013 The PHP Group                                |
1.1       misho       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>