summaryrefslogtreecommitdiff
path: root/sapi/cgi/fastcgi.h
diff options
context:
space:
mode:
authorDmitry Stogov <dmitry@php.net>2006-05-15 14:30:31 +0000
committerDmitry Stogov <dmitry@php.net>2006-05-15 14:30:31 +0000
commitb5cd968ffc8fe71cbf8bf96b84b80883e94f1d2b (patch)
tree8f3031fad2ccc268e14ff5606549e4708bf99fef /sapi/cgi/fastcgi.h
parent7975b4eb0e263e83fea8c19fddfc5cae4a8f9fbf (diff)
downloadphp-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.h57
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