X-Git-Url: https://git.m6w6.name/?a=blobdiff_plain;f=http_request_object.c;h=7567b96d342edeaa482423b378369dca9ad9d9a7;hb=59a1afd0b68f9028e98fe003d8673db1fcf45f1f;hp=f763b482898c408613dcb5fade3891035e51909c;hpb=43923eca4429ed3ce5fb85407345d7030a1879f1;p=m6w6%2Fext-http diff --git a/http_request_object.c b/http_request_object.c index f763b48..7567b96 100644 --- a/http_request_object.c +++ b/http_request_object.c @@ -446,7 +446,7 @@ STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ 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; } @@ -465,7 +465,9 @@ STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ 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 */ @@ -478,7 +480,8 @@ STATUS _http_request_object_requesthandler(http_request_object *obj, zval *this_ 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); } }