#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
-
#include "php.h"
+
+#if defined(ZEND_ENGINE_2) && defined(HTTP_HAVE_CURL)
+
#include "php_http.h"
#include "php_http_std_defs.h"
#include "php_http_api.h"
#include "php_http_request_object.h"
#include "php_http_requestpool_object.h"
-#ifdef ZEND_ENGINE_2
-
#ifndef HTTP_DEBUG_REQPOOLS
# define HTTP_DEBUG_REQPOOLS 0
#endif
{
getObjectEx(http_request_object, req, request);
#if HTTP_DEBUG_REQPOOLS
- fprintf(stderr, "Detaching request %p (pool: %p) from pool %p\n", req, req->pool, pool);
+ fprintf(stderr, "Detaching request %p from pool %p\n", req, pool);
#endif
if (req->pool != pool) {
http_error(E_WARNING, HTTP_E_CURL, "HttpRequest object is not attached to this HttpRequestPool");
fprintf(stderr, "Detaching %d requests from pool %p\n", count, pool);
#endif
/*
- * we cannot apply a function to the llist which actually detaches
+ * we cannot apply a function to the llist which actually detaches
* the curl handle *and* removes the llist element --
* so let's get our hands dirty
*/
int i = 0;
zend_llist_position pos;
zval **handle, **handles = emalloc(count * sizeof(zval *));
-
+
for (handle = zend_llist_get_first_ex(&pool->handles, &pos); handle; handle = zend_llist_get_next_ex(&pool->handles, &pos)) {
handles[i++] = *handle;
}
for (i = 0; i < count; ++i) {
http_request_pool_detach(pool, handles[i]);
}
+ efree(handles);
}
}
PHP_HTTP_API STATUS _http_request_pool_send(http_request_pool *pool TSRMLS_DC)
{
#if HTTP_DEBUG_REQPOOLS
- fprintf(stderr, "Attempt to send requests of pool %p\n", pool);
+ fprintf(stderr, "Attempt to send %d requests of pool %p\n", zend_llist_count(&pool->handles), pool);
#endif
while (http_request_pool_perform(pool)) {
#if HTTP_DEBUG_REQPOOLS
}
/* }}} */
-#endif /* ZEND_ENGINE_2 */
+#endif /* ZEND_ENGINE_2 && HTTP_HAVE_CURL */
/*