diff options
author | Dmitry Stogov <dmitry@php.net> | 2006-05-15 14:30:31 +0000 |
---|---|---|
committer | Dmitry Stogov <dmitry@php.net> | 2006-05-15 14:30:31 +0000 |
commit | b5cd968ffc8fe71cbf8bf96b84b80883e94f1d2b (patch) | |
tree | 8f3031fad2ccc268e14ff5606549e4708bf99fef /sapi/cgi/fastcgi.h | |
parent | 7975b4eb0e263e83fea8c19fddfc5cae4a8f9fbf (diff) | |
download | php-git-b5cd968ffc8fe71cbf8bf96b84b80883e94f1d2b.tar.gz |
- Removed source compatibility with libfcgi
- Optimized access to FastCGI environment using HashTable instead of linear search
- Allowed PHP_FCGI_MAX_REQUESTS=0 to disable PHP die
- Allowed PHP_FCGI_CHILDREN=0 to disable PHP spawn workers
Diffstat (limited to 'sapi/cgi/fastcgi.h')
-rw-r--r-- | sapi/cgi/fastcgi.h | 57 |
1 files changed, 5 insertions, 52 deletions
diff --git a/sapi/cgi/fastcgi.h b/sapi/cgi/fastcgi.h index 7c910e1abb..ba648f3ea5 100644 --- a/sapi/cgi/fastcgi.h +++ b/sapi/cgi/fastcgi.h @@ -105,7 +105,7 @@ typedef struct _fcgi_request { unsigned char out_buf[1024*8]; unsigned char reserved[sizeof(fcgi_end_request_rec)]; - char *env[128]; + HashTable env; } fcgi_request; int fcgi_init(void); @@ -116,63 +116,16 @@ int fcgi_accept_request(fcgi_request *req); int fcgi_finish_request(fcgi_request *req); char* fcgi_getenv(fcgi_request *req, const char* var, int var_len); -void fcgi_putenv(fcgi_request *req, char* var, int var_len); +char* fcgi_putenv(fcgi_request *req, char* var, int var_len, char* val); 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 close); -/* Some defines for limited libfcgi comatibility */ - -typedef struct _FCGX_Stream { - fcgi_request *req; - fcgi_request_type type; -} FCGX_Stream; - -typedef struct _FCGX_Request { - fcgi_request req; - FCGX_Stream in; - FCGX_Stream out; - FCGX_Stream err; - char **envp; -} FCGX_Request; - -#define FCGX_Init() -#define FCGX_IsCGI() (!fcgi_is_fastcgi()) -#define FCGX_OpenSocket(path, backlog) fcgi_listen(path, backlog) - -#define FCGX_InitRequest(r, sock, flags) \ - do { \ - fcgi_init_request(&(r)->req, sock); \ - (r)->in.req = &(r)->req; \ - (r)->out.req = &(r)->req; \ - (r)->err.req = &(r)->req; \ - (r)->in.type = FCGI_STDIN; \ - (r)->out.type = FCGI_STDOUT; \ - (r)->err.type = FCGI_STDERR; \ - (r)->envp = (r)->req.env; \ - } while (0); - - -#define FCGX_Accept_r(r) fcgi_accept_request(&(r)->req) -#define FCGX_Finish_r(r) fcgi_finish_request(&(r)->req) - -#define FCGX_PutStr(str, len, stream) fcgi_write((stream).req, (stream).type, str, len) -#define FCGX_PutS(str, len, stream) fcgi_write((stream).req, (stream).type, str, len) -#define FCGX_FFlush(stream) fcgi_flush((stream).req, 0) -#define FCGX_GetStr(str, len, stream) fcgi_read((stream).req, str, len) - -#define FCGX_GetParam(var, envp) fcgi_getenv_helper(envp, var, strlen(var)); - -#define FCGX_PutEnv(r, var) fcgi_putenv(&(r)->req, var, strlen(var)); - -int FCGX_FPrintF(FCGX_Stream stream, const char *format, ...); - -/* Internal helper functions. They shouldn't be used directly. */ - -char* fcgi_getenv_helper(char** env, const char *name, int len); - +#ifdef PHP_WIN32 +void fcgi_impersonate(void); +#endif /* * Local variables: * tab-width: 4 |