zend_string *key_str;
zend_ulong key_num;
- if (HASH_KEY_IS_STRING == zend_hash_get_current_key_ex(¶ms, &key_str, &key_num, NULL)) {
+ if (HASH_KEY_IS_STRING == zend_hash_get_current_key(¶ms, &key_str, &key_num)) {
sapi_post_entry *post_entry = NULL;
if ((post_entry = zend_hash_find_ptr(&SG(known_post_content_types), key_str))) {
- if (post_entry) {
- SG(request_info).post_entry = post_entry;
+ SG(request_info).post_entry = post_entry;
- if (post_entry->post_reader) {
- post_entry->post_reader();
- }
+ if (post_entry->post_reader) {
+ post_entry->post_reader();
}
if (sapi_module.default_post_reader) {
/*
* the rfc1867 handler is an awkward buddy
+ * FIXME: this leaks because php_auto_globals_create_files()
+ * as well as the rfc1867_handler call
+ * array_init(&PG(http_globals)[TRACK_VARS_FILES])
*/
Z_TRY_ADDREF(PG(http_globals)[TRACK_VARS_FILES]);
- zend_hash_str_update(&EG(symbol_table).ht, "_FILES", sizeof("_FILES"), &PG(http_globals)[TRACK_VARS_FILES]);
+ zend_hash_str_update(&EG(symbol_table).ht, "_FILES", lenof("_FILES"), &PG(http_globals)[TRACK_VARS_FILES]);
}
}
zend_hash_destroy(¶ms);
request_headers = PHP_HTTP_G->env.request.headers;
}
- if ((zvalue == zend_symtable_str_find(request_headers, key, name_len))) {
+ if ((zvalue = zend_symtable_str_find(request_headers, key, name_len))) {
zend_string *zs = zval_get_string(zvalue);
val = estrndup(zs->val, zs->len);
&& !strncmp(header->header, args->name_str, args->name_len)
) {
args->value_ptr = &header->header[args->name_len + 1];
+ while (PHP_HTTP_IS_CTYPE(space, *args->value_ptr)) {
+ ++args->value_ptr;
+ }
}
}
zval *data_ptr;
HashTable *ht = HASH_OF(value);
- ZEND_HASH_FOREACH_VAL(ht, data_ptr)
+ ZEND_HASH_FOREACH_VAL_IND(ht, data_ptr)
{
if (SUCCESS != php_http_env_set_response_header_value(http_code, name_str, name_len, data_ptr, first)) {
return FAILURE;
static PHP_METHOD(HttpEnv, setResponseHeader)
{
char *header_name_str;
- int header_name_len;
+ size_t header_name_len;
zval *header_value = NULL;
- long code = 0;
+ zend_long code = 0;
zend_bool replace_header = 1;
if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS(), "s|z!lb", &header_name_str, &header_name_len, &header_value, &code, &replace_header)) {
return;
}
- RETURN_BOOL(SUCCESS == php_http_env_set_response_header_value(code, header_name_str, header_name_len, header_value, replace_header TSRMLS_CC));
+ RETURN_BOOL(SUCCESS == php_http_env_set_response_header_value(code, header_name_str, header_name_len, header_value, replace_header));
}
ZEND_BEGIN_ARG_INFO_EX(ai_HttpEnv_setResponseCode, 0, 0, 1)
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
return;
}
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
return;
}
-
if (rs_array) {
+ ZVAL_DEREF(rs_array);
zval_dtor(rs_array);
array_init(rs_array);
}
if (json) {
if (json->len) {
- zval zjson;
+ zval tmp;
+
+ ZVAL_NULL(&tmp);
+ php_json_decode(&tmp, json->val, json->len, 1, PG(max_input_nesting_level));
- ZVAL_NULL(&zjson);
- php_json_decode(&zjson, json->val, json->len, 1, PG(max_input_nesting_level));
- if (Z_TYPE(zjson) != IS_NULL) {
- zval_dtor(zarg);
- ZVAL_COPY_VALUE(zarg, (&zjson));
+ if (Z_TYPE(tmp) == IS_ARRAY) {
+ array_copy(Z_ARRVAL(tmp), Z_ARRVAL_P(zarg));
}
+ zval_ptr_dtor(&tmp);
}
zend_string_release(json);
}