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;
}
/* }}} */