return SUCCESS;
}
+/* }}} */
/* {{{ void http_error(long, long, char*) */
void _http_error_ex(long type, long code, const char *format, ...)
/* {{{ zval *http_get_server_var_ex(char *, size_t) */
PHP_HTTP_API zval *_http_get_server_var_ex(const char *key, size_t key_size, zend_bool check TSRMLS_DC)
{
+ zval **hsv;
zval **var;
- if (SUCCESS == zend_hash_find(HTTP_SERVER_VARS, (char *) key, key_size, (void **) &var)) {
- if (check) {
- return Z_STRVAL_PP(var) && Z_STRLEN_PP(var) ? *var : NULL;
- } else {
- return *var;
- }
+
+ if (SUCCESS != zend_hash_find(&EG(symbol_table), "HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS"), (void **) &hsv)) {
+ return NULL;
+ }
+ if (SUCCESS != zend_hash_find(Z_ARRVAL_PP(hsv), (char *) key, key_size, (void **) &var)) {
+ return NULL;
+ }
+ if (check && !(Z_STRVAL_PP(var) && Z_STRLEN_PP(var))) {
+ return NULL;
}
- return NULL;
+ return *var;
}
/* }}} */
{
char *key = NULL;
ulong idx = 0;
- zval array;
+ zval array, **hsv;
Z_ARRVAL(array) = headers;
- FOREACH_HASH_KEY(HTTP_SERVER_VARS, key, idx) {
- if (key && !strncmp(key, "HTTP_", 5)) {
- zval **header;
-
- key += 5;
- if (prettify) {
- key = pretty_key(key, strlen(key), 1, 1);
+ if (SUCCESS == zend_hash_find(&EG(symbol_table), "HTTP_SERVER_VARS", sizeof("HTTP_SERVER_VARS"), (void **) &hsv)) {
+ FOREACH_KEY(*hsv, key, idx) {
+ if (key && !strncmp(key, "HTTP_", 5)) {
+ zval **header;
+
+ key += 5;
+ if (prettify) {
+ key = pretty_key(key, strlen(key), 1, 1);
+ }
+
+ zend_hash_get_current_data(Z_ARRVAL_PP(hsv), (void **) &header);
+ add_assoc_stringl(&array, key, Z_STRVAL_PP(header), Z_STRLEN_PP(header), 1);
+ key = NULL;
}
-
- zend_hash_get_current_data(HTTP_SERVER_VARS, (void **) &header);
- add_assoc_stringl(&array, key, Z_STRVAL_PP(header), Z_STRLEN_PP(header), 1);
- key = NULL;
}
}
}
if (Z_LVAL_P(GET_STATIC_PROP(gzip))) {
php_start_ob_buffer_named("ob_gzhandler", 0, 1 TSRMLS_CC);
} else {
- php_start_ob_buffer(NULL, 0, 0 TSRMLS_CC);
+ php_start_ob_buffer(NULL, 0, 1 TSRMLS_CC);
}
/* caching */
/* END */
-/* server vars shorthand */
-#define HTTP_SERVER_VARS Z_ARRVAL_P(PG(http_globals)[TRACK_VARS_SERVER])
-
#define HTTP_PHP_INI_ENTRY(entry, default, scope, updater, global) \
STD_PHP_INI_ENTRY(entry, default, scope, updater, global, zend_http_globals, http_globals)