return sapi_cgibin_getenv((char *) "HTTP_COOKIE", sizeof("HTTP_COOKIE")-1 TSRMLS_CC);
}
-static void cgi_php_load_env_var(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg)
+static void cgi_php_load_env_var(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg TSRMLS_DC)
{
zval *array_ptr = (zval*)arg;
- int filter_arg;
+ int filter_arg = (array_ptr == PG(http_globals)[TRACK_VARS_ENV])?PARSE_ENV:PARSE_SERVER;
unsigned int new_val_len;
- TSRMLS_FETCH();
- filter_arg = (array_ptr == PG(http_globals)[TRACK_VARS_ENV])?PARSE_ENV:PARSE_SERVER;
if (sapi_module.input_filter(filter_arg, var, &val, strlen(val), &new_val_len TSRMLS_CC)) {
php_register_variable_safe(var, val, new_val_len, array_ptr TSRMLS_CC);
}
/* turn off magic_quotes while importing environment variables */
PG(magic_quotes_gpc) = 0;
- fcgi_loadenv(request, cgi_php_load_env_var, array_ptr);
+ fcgi_loadenv(request, cgi_php_load_env_var, array_ptr TSRMLS_CC);
PG(magic_quotes_gpc) = magic_quotes_gpc;
}
}
return NULL;
}
-static void fcgi_hash_apply(fcgi_hash *h, fcgi_apply_func func, void *arg)
+static void fcgi_hash_apply(fcgi_hash *h, fcgi_apply_func func, void *arg TSRMLS_DC)
{
fcgi_hash_bucket *p = h->list;
while (p) {
if (EXPECTED(p->val != NULL)) {
- func(p->var, p->var_len, p->val, p->val_len, arg);
+ func(p->var, p->var_len, p->val, p->val_len, arg TSRMLS_CC);
}
p = p->list_next;
}
val_len |= *p++;
}
if (UNEXPECTED(name_len + val_len < 0) ||
- UNEXPECTED(name_len + val_len > end - p)) {
+ UNEXPECTED((unsigned char *) (name_len + val_len) > end - p)) {
/* Malformated request */
ret = 0;
break;
return NULL;
}
-void fcgi_loadenv(fcgi_request *req, fcgi_apply_func func, zval *array)
+void fcgi_loadenv(fcgi_request *req, fcgi_apply_func func, zval *array TSRMLS_DC)
{
- fcgi_hash_apply(&req->env, func, array);
+ fcgi_hash_apply(&req->env, func, array TSRMLS_CC);
}
#ifdef _WIN32
/* FastCGI client API */
-typedef void (*fcgi_apply_func)(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg);
+typedef void (*fcgi_apply_func)(char *var, unsigned int var_len, char *val, unsigned int val_len, void *arg TSRMLS_DC);
typedef struct _fcgi_request fcgi_request;
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);
-void fcgi_loadenv(fcgi_request *req, fcgi_apply_func load_func, zval *array);
+void fcgi_loadenv(fcgi_request *req, fcgi_apply_func load_func, zval *array TSRMLS_DC);
int fcgi_read(fcgi_request *req, char *str, int len);