mirror of
https://github.com/apache/httpd.git
synced 2025-06-01 23:21:45 +03:00
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@420983 13f79535-47bb-0310-9956-ffa450edef68
108 lines
2.9 KiB
C
108 lines
2.9 KiB
C
/* Licensed to the Apache Software Foundation (ASF) under one or more
|
|
* contributor license agreements. See the NOTICE file distributed with
|
|
* this work for additional information regarding copyright ownership.
|
|
* The ASF licenses this file to You under the Apache License, Version 2.0
|
|
* (the "License"); you may not use this file except in compliance with
|
|
* the License. You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
|
|
/**
|
|
* @file fcgi_protocol.h
|
|
* @brief FastCGI protocol defines
|
|
*
|
|
* @addtogroup FCGI_defines
|
|
* @{
|
|
*/
|
|
|
|
#ifndef FCGI_PROTOCOL_H
|
|
#define FCGI_PROTOCOL_H
|
|
|
|
|
|
#define FCGI_VERSION 1
|
|
|
|
#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)
|
|
|
|
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_HDR_VERSION_OFFSET 0
|
|
#define FCGI_HDR_TYPE_OFFSET 1
|
|
#define FCGI_HDR_REQUEST_ID_B1_OFFSET 2
|
|
#define FCGI_HDR_REQUEST_ID_B0_OFFSET 3
|
|
#define FCGI_HDR_CONTENT_LEN_B1_OFFSET 4
|
|
#define FCGI_HDR_CONTENT_LEN_B0_OFFSET 5
|
|
#define FCGI_HDR_PADDING_LEN_OFFSET 6
|
|
#define FCGI_HDR_RESERVED_OFFSET 7
|
|
|
|
#define FCGI_BRB_ROLEB1_OFFSET 0
|
|
#define FCGI_BRB_ROLEB0_OFFSET 1
|
|
#define FCGI_BRB_FLAGS_OFFSET 2
|
|
#define FCGI_BRB_RESERVED0_OFFSET 3
|
|
#define FCGI_BRB_RESERVED1_OFFSET 4
|
|
#define FCGI_BRB_RESERVED2_OFFSET 5
|
|
#define FCGI_BRB_RESERVED3_OFFSET 6
|
|
#define FCGI_BRB_RESERVED4_OFFSET 7
|
|
|
|
/*
|
|
* Number of bytes in a fcgi_header. Future versions of the protocol
|
|
* will not reduce this number.
|
|
*/
|
|
#define FCGI_HEADER_LEN 8
|
|
|
|
/*
|
|
* 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 roleB1;
|
|
unsigned char roleB0;
|
|
unsigned char flags;
|
|
unsigned char reserved[5];
|
|
} fcgi_begin_request_body;
|
|
|
|
/*
|
|
* Maximum size of the allowed environment.
|
|
*/
|
|
#define FCGI_MAX_ENV_SIZE 65535
|
|
|
|
/* #define FCGI_DUMP_ENV_VARS */
|
|
|
|
|
|
#endif /* FCGI_PROTOCOL_H */
|
|
/** @} */
|