php_stream *stream = php_stream_open_wrapper(Z_STRVAL_P(GET_PROP(obj, putFile)), "rb", REPORT_ERRORS|ENFORCE_SAFE_MODE, NULL);
if (stream && !php_stream_stat(stream, &ssb)) {
- http_request_body_init_ex(obj->request->body, HTTP_REQUEST_BODY_UPLOADFILE, stream, ssb.sb.st_size, 1);
+ obj->request->body = http_request_body_init_ex(obj->request->body, HTTP_REQUEST_BODY_UPLOADFILE, stream, ssb.sb.st_size, 1);
} else {
status = FAILURE;
}
if (Z_STRLEN_P(ctype)) {
zval **headers, *opts = GET_PROP(obj, options);
- if ((SUCCESS == zend_hash_find(Z_ARRVAL_P(opts), "headers", sizeof("headers"), (void **) &headers)) && (Z_TYPE_PP(headers) == IS_ARRAY)) {
+ if ( (Z_TYPE_P(opts) == IS_ARRAY) &&
+ (SUCCESS == zend_hash_find(Z_ARRVAL_P(opts), "headers", sizeof("headers"), (void **) &headers)) &&
+ (Z_TYPE_PP(headers) == IS_ARRAY)) {
zval **ct_header;
/* only override if not already set */
MAKE_STD_ZVAL(headers);
array_init(headers);
add_assoc_stringl(headers, "Content-Type", Z_STRVAL_P(ctype), Z_STRLEN_P(ctype), 1);
- add_assoc_zval(opts, "headers", headers);
+ zend_call_method_with_1_params(&getThis(), Z_OBJCE_P(getThis()), NULL, "addheaders", NULL, headers);
+ zval_ptr_dtor(&headers);
}
}
array_init(return_value);
- if (SUCCESS == zend_hash_find(Z_ARRVAL_P(opts), key, len, (void **) &options)) {
+ if ( (Z_TYPE_P(opts) == IS_ARRAY) &&
+ (SUCCESS == zend_hash_find(Z_ARRVAL_P(opts), key, len, (void **) &options))) {
convert_to_array(*options);
array_copy(*options, return_value);
}
if (!opts || !zend_hash_num_elements(Z_ARRVAL_P(opts))) {
SET_PROP(obj, options, new_opts);
+ zval_ptr_dtor(&new_opts);
RETURN_TRUE;
}
array_copy(files, post);
}
SET_PROP(obj, postFiles, post);
+ zval_ptr_dtor(&post);
RETURN_TRUE;
}
IF_RETVAL_USED {
getObject(http_request_object, obj);
-
- array_init(return_value);
- array_copy(GET_PROP(obj, postFiles), return_value);
+ zval *files = GET_PROP(obj, postFiles);
+
+ RETURN_ZVAL(files, 1, 0);
}
}
/* }}} */
IF_RETVAL_USED {
getObject(http_request_object, obj);
+ zval *data = GET_PROP(obj, responseData);
- array_init(return_value);
- array_copy(GET_PROP(obj, responseData), return_value);
+ RETURN_ZVAL(data, 1, 0);
}
}
/* }}} */