CURLMcode rs;
TSRMLS_FETCH_FROM_CTX(h->ts);
+ if (r->ops != php_http_curl_client_get_ops()) {
+ php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT_POOL, "Cannot attach a non-curl client to this pool");
+ return FAILURE;
+ }
+
if (SUCCESS != php_http_curl_client_prepare(r, m)) {
return FAILURE;
}
{
php_http_curl_client_pool_t *curl = h->ctx;
php_http_curl_client_t *recurl = r->ctx;
- CURLMcode rs = curl_multi_remove_handle(curl->handle, recurl->handle);
+ CURLMcode rs;
TSRMLS_FETCH_FROM_CTX(h->ts);
- if (CURLM_OK == rs) {
+ if (r->ops != php_http_curl_client_get_ops()) {
+ php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT_POOL, "Cannot attach a non-curl client to this pool");
+ return FAILURE;
+ }
+
+ if (CURLM_OK == (rs = curl_multi_remove_handle(curl->handle, recurl->handle))) {
return SUCCESS;
} else {
php_http_error(HE_WARNING, PHP_HTTP_E_CLIENT_POOL, "Could not detach request from pool: %s", curl_multi_strerror(rs));
o = ecalloc(1, sizeof(php_http_client_pool_object_t));
zend_object_std_init((zend_object *) o, ce TSRMLS_CC);
+#if PHP_VERSION_ID < 50339
+ zend_hash_copy(((zend_object *) o)->properties, &(ce->default_properties), (copy_ctor_func_t) zval_add_ref, NULL, sizeof(zval*));
+#else
object_properties_init((zend_object *) o, ce);
+#endif
if (!(o->pool = p)) {
o->pool = php_http_client_pool_init(NULL, &php_http_curl_client_pool_ops, NULL, NULL TSRMLS_CC);