/* resource_factory ops */
-static void *php_http_curl_ctor(void *opaque TSRMLS_DC)
+static void *php_http_curl_ctor(void *opaque, void *init_arg TSRMLS_DC)
{
void *ch;
return SUCCESS;
}
+#if PHP_HTTP_CURL_VERSION(7,21,3)
static STATUS php_http_curl_client_option_set_resolve(php_http_option_t *opt, zval *val, void *userdata)
{
php_http_client_t *h = userdata;
}
return SUCCESS;
}
+#endif
static void php_http_curl_client_options_init(php_http_options_t *registry TSRMLS_DC)
{
php_http_curl_client_t *ctx;
TSRMLS_FETCH_FROM_CTX(h->ts);
- if (!handle && !(handle = php_http_resource_factory_handle_ctor(h->rf TSRMLS_CC))) {
+ if (!handle && !(handle = php_resource_factory_handle_ctor(h->rf, NULL TSRMLS_CC))) {
php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT, "could not initialize curl handle");
return NULL;
}
void *copy;
TSRMLS_FETCH_FROM_CTX(from->ts);
- if (!(copy = php_http_resource_factory_handle_copy(from->rf, ctx->handle TSRMLS_CC))) {
+ if (!(copy = php_resource_factory_handle_copy(from->rf, ctx->handle TSRMLS_CC))) {
return NULL;
}
curl_easy_setopt(ctx->handle, CURLOPT_VERBOSE, 0L);
curl_easy_setopt(ctx->handle, CURLOPT_DEBUGFUNCTION, NULL);
- php_http_resource_factory_handle_dtor(h->rf, ctx->handle TSRMLS_CC);
+ php_resource_factory_handle_dtor(h->rf, ctx->handle TSRMLS_CC);
php_http_buffer_dtor(&ctx->options.ranges);
php_http_buffer_dtor(&ctx->options.cookies);
}
/* attach request body */
- if ((body_size = php_http_message_body_size(&msg->body))) {
+ if ((body_size = php_http_message_body_size(msg->body))) {
/* RFC2616, section 4.3 (para. 4) states that »a message-body MUST NOT be included in a request if the
* specification of the request method (section 5.1.1) does not allow sending an entity-body in request.«
* Following the clause in section 5.1.1 (para. 2) that request methods »MUST be implemented with the
* same semantics as those specified in section 9« reveal that not any single defined HTTP/1.1 method
* does not allow a request body.
*/
- php_stream_rewind(php_http_message_body_stream(&msg->body));
- curl_easy_setopt(curl->handle, CURLOPT_IOCTLDATA, &msg->body);
- curl_easy_setopt(curl->handle, CURLOPT_READDATA, &msg->body);
+ php_stream_rewind(php_http_message_body_stream(msg->body));
+ curl_easy_setopt(curl->handle, CURLOPT_IOCTLDATA, msg->body);
+ curl_easy_setopt(curl->handle, CURLOPT_READDATA, msg->body);
curl_easy_setopt(curl->handle, CURLOPT_INFILESIZE, body_size);
curl_easy_setopt(curl->handle, CURLOPT_POSTFIELDSIZE, body_size);
}
return SUCCESS;
}
-static php_http_resource_factory_ops_t php_http_curl_client_resource_factory_ops = {
+static php_resource_factory_ops_t php_http_curl_client_resource_factory_ops = {
php_http_curl_ctor,
php_http_curl_copy,
php_http_curl_dtor
{
php_http_options_t *options;
- if (SUCCESS != php_http_persistent_handle_provide(ZEND_STRL("http_client.curl"), &php_http_curl_client_resource_factory_ops, NULL, NULL)) {
+ if (SUCCESS != php_persistent_handle_provide(ZEND_STRL("http_client.curl"), &php_http_curl_client_resource_factory_ops, NULL, NULL TSRMLS_CC)) {
return FAILURE;
}