X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=php_http_client_curl.c;h=a89a807235ae4248dd5cf4d1963a64fc9a9c1691;hp=f16349e2f0472320875d300657f55b9a57f59ad0;hb=c52a84fd06e87bf72eb98e83abfff29779b0681c;hpb=19a017f746fe281d828d1783ef2a5991ce6114e4 diff --git a/php_http_client_curl.c b/php_http_client_curl.c index f16349e..a89a807 100644 --- a/php_http_client_curl.c +++ b/php_http_client_curl.c @@ -1022,10 +1022,8 @@ static STATUS php_http_client_curl_reset(php_http_client_t *h) return SUCCESS; } -static STATUS php_http_client_curl_exec(php_http_client_t *h, php_http_message_t *msg) +STATUS php_http_client_curl_prepare(php_http_client_t *h, php_http_message_t *msg) { - uint tries = 0; - CURLcode result; php_http_client_curl_t *curl = h->ctx; php_http_client_curl_storage_t *storage = get_storage(curl->handle); TSRMLS_FETCH_FROM_CTX(h->ts); @@ -1033,6 +1031,7 @@ static STATUS php_http_client_curl_exec(php_http_client_t *h, php_http_message_t /* request url */ if (!PHP_HTTP_INFO(msg).request.url) { php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT, "Cannot request empty URL"); + return FAILURE; } storage->errorbuffer[0] = '\0'; if (storage->url) { @@ -1110,6 +1109,21 @@ static STATUS php_http_client_curl_exec(php_http_client_t *h, php_http_message_t curl_easy_setopt(curl->handle, CURLOPT_POSTFIELDSIZE, body_size); } + return SUCCESS; +} + +static STATUS php_http_client_curl_exec(php_http_client_t *h, php_http_message_t *msg) +{ + uint tries = 0; + CURLcode result; + php_http_client_curl_t *curl = h->ctx; + php_http_client_curl_storage_t *storage = get_storage(curl->handle); + TSRMLS_FETCH_FROM_CTX(h->ts); + + if (SUCCESS != php_http_client_curl_prepare(h, msg)) { + return FAILURE; + } + retry: if (CURLE_OK != (result = curl_easy_perform(curl->handle))) { php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT, "%s; %s (%s)", curl_easy_strerror(result), storage->errorbuffer, storage->url);