php-internal-docs 8.4.8
Unofficial docs for php/php-src
Loading...
Searching...
No Matches
fastcgi.h File Reference

Go to the source code of this file.

Macros

#define FCGI_VERSION_1   1
 
#define FCGI_MAX_LENGTH   0xffff
 
#define FCGI_KEEP_CONN   1
 
#define FCGI_HASH_FUNC(var, var_len)
 
#define FCGI_GETENV(request, name)
 
#define FCGI_PUTENV(request, name, value)
 
#define FCGI_HASH_TABLE_SIZE   128
 
#define FCGI_HASH_TABLE_MASK   (FCGI_HASH_TABLE_SIZE - 1)
 
#define FCGI_HASH_SEG_SIZE   4096
 

Typedefs

typedef enum _fcgi_role fcgi_role
 
typedef enum _fcgi_request_type fcgi_request_type
 
typedef enum _fcgi_protocol_status dcgi_protocol_status
 
typedef void(* fcgi_apply_func) (const char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg)
 
typedef struct _fcgi_request fcgi_request
 
typedef void(* fcgi_logger) (int type, const char *fmt,...) ZEND_ATTRIBUTE_FORMAT(printf
 
typedef void void fcgi_set_logger(fcgi_logger lg)
 

Enumerations

enum  _fcgi_role { FCGI_RESPONDER = 1 , FCGI_AUTHORIZER = 2 , FCGI_FILTER = 3 }
 
enum  {
  FCGI_DEBUG = 1 , FCGI_NOTICE = 2 , FCGI_WARNING = 3 , FCGI_ERROR = 4 ,
  FCGI_ALERT = 5
}
 
enum  _fcgi_request_type {
  FCGI_BEGIN_REQUEST = 1 , FCGI_ABORT_REQUEST = 2 , FCGI_END_REQUEST = 3 , FCGI_PARAMS = 4 ,
  FCGI_STDIN = 5 , FCGI_STDOUT = 6 , FCGI_STDERR = 7 , FCGI_DATA = 8 ,
  FCGI_GET_VALUES = 9 , FCGI_GET_VALUES_RESULT = 10
}
 
enum  _fcgi_protocol_status { FCGI_REQUEST_COMPLETE = 0 , FCGI_CANT_MPX_CONN = 1 , FCGI_OVERLOADED = 2 , FCGI_UNKNOWN_ROLE = 3 }
 

Functions

int fcgi_init (void)
 
void fcgi_shutdown (void)
 
int fcgi_is_fastcgi (void)
 
int fcgi_is_closed (fcgi_request *req)
 
void fcgi_close (fcgi_request *req, int force, int destroy)
 
int fcgi_in_shutdown (void)
 
void fcgi_terminate (void)
 
int fcgi_listen (const char *path, int backlog)
 
fcgi_requestfcgi_init_request (int listen_socket, void(*on_accept)(void), void(*on_read)(void), void(*on_close)(void))
 
void fcgi_destroy_request (fcgi_request *req)
 
void fcgi_set_allowed_clients (char *ip)
 
int fcgi_accept_request (fcgi_request *req)
 
int fcgi_finish_request (fcgi_request *req, int force_close)
 
const char * fcgi_get_last_client_ip (void)
 
void fcgi_set_in_shutdown (int new_value)
 
void fcgi_request_set_keep (fcgi_request *req, int new_value)
 
int fcgi_has_env (fcgi_request *req)
 
char * fcgi_getenv (fcgi_request *req, const char *var, int var_len)
 
char * fcgi_putenv (fcgi_request *req, char *var, int var_len, char *val)
 
char * fcgi_quick_getenv (fcgi_request *req, const char *var, int var_len, unsigned int hash_value)
 
char * fcgi_quick_putenv (fcgi_request *req, char *var, int var_len, unsigned int hash_value, char *val)
 
void fcgi_loadenv (fcgi_request *req, fcgi_apply_func load_func, zval *array)
 
int fcgi_read (fcgi_request *req, char *str, int len)
 
int fcgi_write (fcgi_request *req, fcgi_request_type type, const char *str, int len)
 
int fcgi_flush (fcgi_request *req, int end)
 
int fcgi_end (fcgi_request *req)
 
void fcgi_set_mgmt_var (const char *name, size_t name_len, const char *value, size_t value_len)
 
void fcgi_free_mgmt_var_cb (zval *zv)
 

Macro Definition Documentation

◆ FCGI_GETENV

#define FCGI_GETENV ( request,
name )
Value:
fcgi_quick_getenv(request, name, sizeof(name)-1, FCGI_HASH_FUNC(name, sizeof(name)-1))
char * fcgi_quick_getenv(fcgi_request *req, const char *var, int var_len, unsigned int hash_value)
Definition fastcgi.c:1682
#define FCGI_HASH_FUNC(var, var_len)
Definition fastcgi.h:29
zend_string * name

Definition at line 36 of file fastcgi.h.

◆ FCGI_HASH_FUNC

#define FCGI_HASH_FUNC ( var,
var_len )
Value:
(UNEXPECTED(var_len < 3) ? (unsigned int)var_len : \
(((unsigned int)var[3]) << 2) + \
(((unsigned int)var[var_len-2]) << 4) + \
(((unsigned int)var[var_len-1]) << 2) + \
var_len)
#define UNEXPECTED(condition)

Definition at line 29 of file fastcgi.h.

◆ FCGI_HASH_SEG_SIZE

#define FCGI_HASH_SEG_SIZE   4096

Definition at line 82 of file fastcgi.h.

◆ FCGI_HASH_TABLE_MASK

#define FCGI_HASH_TABLE_MASK   (FCGI_HASH_TABLE_SIZE - 1)

Definition at line 81 of file fastcgi.h.

◆ FCGI_HASH_TABLE_SIZE

#define FCGI_HASH_TABLE_SIZE   128

Definition at line 80 of file fastcgi.h.

◆ FCGI_KEEP_CONN

#define FCGI_KEEP_CONN   1

Definition at line 23 of file fastcgi.h.

◆ FCGI_MAX_LENGTH

#define FCGI_MAX_LENGTH   0xffff

Definition at line 21 of file fastcgi.h.

◆ FCGI_PUTENV

#define FCGI_PUTENV ( request,
name,
value )
Value:
fcgi_quick_putenv(request, name, sizeof(name)-1, FCGI_HASH_FUNC(name, sizeof(name)-1), value)
char * fcgi_quick_putenv(fcgi_request *req, char *var, int var_len, unsigned int hash_value, char *val)
Definition fastcgi.c:1700
value

Definition at line 39 of file fastcgi.h.

◆ FCGI_VERSION_1

#define FCGI_VERSION_1   1

Definition at line 19 of file fastcgi.h.

Typedef Documentation

◆ dcgi_protocol_status

◆ fcgi_apply_func

typedef void(* fcgi_apply_func) (const char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg)

Definition at line 78 of file fastcgi.h.

◆ fcgi_logger

typedef void(* fcgi_logger) (int type, const char *fmt,...) ZEND_ATTRIBUTE_FORMAT(printf

Definition at line 104 of file fastcgi.h.

◆ fcgi_request

typedef struct _fcgi_request fcgi_request

Definition at line 84 of file fastcgi.h.

◆ fcgi_request_type

◆ fcgi_role

typedef enum _fcgi_role fcgi_role

◆ fcgi_set_logger

typedef void void fcgi_set_logger(fcgi_logger lg)

Definition at line 105 of file fastcgi.h.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
FCGI_DEBUG 
FCGI_NOTICE 
FCGI_WARNING 
FCGI_ERROR 
FCGI_ALERT 

Definition at line 48 of file fastcgi.h.

◆ _fcgi_protocol_status

Enumerator
FCGI_REQUEST_COMPLETE 
FCGI_CANT_MPX_CONN 
FCGI_OVERLOADED 
FCGI_UNKNOWN_ROLE 

Definition at line 69 of file fastcgi.h.

◆ _fcgi_request_type

Enumerator
FCGI_BEGIN_REQUEST 
FCGI_ABORT_REQUEST 
FCGI_END_REQUEST 
FCGI_PARAMS 
FCGI_STDIN 
FCGI_STDOUT 
FCGI_STDERR 
FCGI_DATA 
FCGI_GET_VALUES 
FCGI_GET_VALUES_RESULT 

Definition at line 56 of file fastcgi.h.

◆ _fcgi_role

enum _fcgi_role
Enumerator
FCGI_RESPONDER 
FCGI_AUTHORIZER 
FCGI_FILTER 

Definition at line 42 of file fastcgi.h.

Function Documentation

◆ fcgi_accept_request()

int fcgi_accept_request ( fcgi_request * req)

Definition at line 1351 of file fastcgi.c.

◆ fcgi_close()

void fcgi_close ( fcgi_request * req,
int force,
int destroy )

Definition at line 1257 of file fastcgi.c.

◆ fcgi_destroy_request()

void fcgi_destroy_request ( fcgi_request * req)

Definition at line 905 of file fastcgi.c.

◆ fcgi_end()

int fcgi_end ( fcgi_request * req)

Definition at line 1648 of file fastcgi.c.

◆ fcgi_finish_request()

int fcgi_finish_request ( fcgi_request * req,
int force_close )

Definition at line 1657 of file fastcgi.c.

◆ fcgi_flush()

int fcgi_flush ( fcgi_request * req,
int end )

Definition at line 1510 of file fastcgi.c.

◆ fcgi_free_mgmt_var_cb()

void fcgi_free_mgmt_var_cb ( zval * zv)

Definition at line 1738 of file fastcgi.c.

◆ fcgi_get_last_client_ip()

const char * fcgi_get_last_client_ip ( void )

Definition at line 1743 of file fastcgi.c.

◆ fcgi_getenv()

char * fcgi_getenv ( fcgi_request * req,
const char * var,
int var_len )

Definition at line 1673 of file fastcgi.c.

◆ fcgi_has_env()

int fcgi_has_env ( fcgi_request * req)

Definition at line 1668 of file fastcgi.c.

◆ fcgi_in_shutdown()

int fcgi_in_shutdown ( void )

Definition at line 451 of file fastcgi.c.

◆ fcgi_init()

int fcgi_init ( void )

Definition at line 480 of file fastcgi.c.

◆ fcgi_init_request()

fcgi_request * fcgi_init_request ( int listen_socket,
void(* on_accept )(void),
void(* on_read )(void),
void(* on_close )(void) )

Definition at line 870 of file fastcgi.c.

◆ fcgi_is_closed()

int fcgi_is_closed ( fcgi_request * req)

Definition at line 1308 of file fastcgi.c.

◆ fcgi_is_fastcgi()

int fcgi_is_fastcgi ( void )

Definition at line 541 of file fastcgi.c.

◆ fcgi_listen()

int fcgi_listen ( const char * path,
int backlog )

Definition at line 642 of file fastcgi.c.

◆ fcgi_loadenv()

void fcgi_loadenv ( fcgi_request * req,
fcgi_apply_func load_func,
zval * array )

Definition at line 1710 of file fastcgi.c.

◆ fcgi_putenv()

char * fcgi_putenv ( fcgi_request * req,
char * var,
int var_len,
char * val )

Definition at line 1689 of file fastcgi.c.

◆ fcgi_quick_getenv()

char * fcgi_quick_getenv ( fcgi_request * req,
const char * var,
int var_len,
unsigned int hash_value )

Definition at line 1682 of file fastcgi.c.

◆ fcgi_quick_putenv()

char * fcgi_quick_putenv ( fcgi_request * req,
char * var,
int var_len,
unsigned int hash_value,
char * val )

Definition at line 1700 of file fastcgi.c.

◆ fcgi_read()

int fcgi_read ( fcgi_request * req,
char * str,
int len )

Definition at line 1204 of file fastcgi.c.

◆ fcgi_request_set_keep()

void fcgi_request_set_keep ( fcgi_request * req,
int new_value )

Definition at line 461 of file fastcgi.c.

◆ fcgi_set_allowed_clients()

void fcgi_set_allowed_clients ( char * ip)

Definition at line 821 of file fastcgi.c.

◆ fcgi_set_in_shutdown()

void fcgi_set_in_shutdown ( int new_value)

Definition at line 446 of file fastcgi.c.

◆ fcgi_set_mgmt_var()

void fcgi_set_mgmt_var ( const char * name,
size_t name_len,
const char * value,
size_t value_len )

Definition at line 1727 of file fastcgi.c.

◆ fcgi_shutdown()

void fcgi_shutdown ( void )

Definition at line 550 of file fastcgi.c.

◆ fcgi_terminate()

void fcgi_terminate ( void )

Definition at line 456 of file fastcgi.c.

◆ fcgi_write()

int fcgi_write ( fcgi_request * req,
fcgi_request_type type,
const char * str,
int len )

Definition at line 1540 of file fastcgi.c.