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);
/* 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) {
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);
php_http_curl_dtor
};
+static zend_class_entry *get_class_entry(void)
+{
+ return php_http_client_curl_class_entry;
+}
+
static php_http_client_ops_t php_http_client_curl_ops = {
&php_http_client_curl_resource_factory_ops,
php_http_client_curl_init,
php_http_client_curl_reset,
php_http_client_curl_exec,
php_http_client_curl_setopt,
- php_http_client_curl_getopt
+ php_http_client_curl_getopt,
+ (php_http_new_t) php_http_client_curl_object_new_ex,
+ get_class_entry
};
PHP_HTTP_API php_http_client_ops_t *php_http_client_curl_get_ops(void)