make the pool functional again
[m6w6/ext-http] / php_http_client_curl.c
index f16349e2f0472320875d300657f55b9a57f59ad0..a89a807235ae4248dd5cf4d1963a64fc9a9c1691 100644 (file)
@@ -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);