X-Git-Url: https://git.m6w6.name/?p=m6w6%2Fext-http;a=blobdiff_plain;f=src%2Fphp_http_client_curl_user.c;h=f4a995894ba8a2ddad3ce1cee1d71b6e165f2a3a;hp=6fdfa36449f4f43629a1dbb3f99b93bc904b47a5;hb=f8b17453289061baee75586df671c62e9cd120e1;hpb=a1d6c90d8630ec1385f10052656d129498720adf diff --git a/src/php_http_client_curl_user.c b/src/php_http_client_curl_user.c index 6fdfa36..f4a9958 100644 --- a/src/php_http_client_curl_user.c +++ b/src/php_http_client_curl_user.c @@ -43,6 +43,7 @@ static void php_http_client_curl_user_handler(INTERNAL_FUNCTION_PARAMETERS) long action = 0; php_socket_t fd = CURL_SOCKET_TIMEOUT; php_http_client_object_t *client = NULL; + php_http_client_curl_t *curl; if (SUCCESS != zend_parse_parameters(ZEND_NUM_ARGS() TSRMLS_CC, "O|rl", &zclient, php_http_client_class_entry, &zstream, &action)) { return; @@ -57,6 +58,9 @@ static void php_http_client_curl_user_handler(INTERNAL_FUNCTION_PARAMETERS) } } php_http_client_curl_loop(client->client, fd, action); + + curl = client->client->ctx; + RETVAL_LONG(curl->unfinished); } static void php_http_client_curl_user_timer(CURLM *multi, long timeout_ms, void *timer_data) @@ -212,7 +216,11 @@ static void *php_http_client_curl_user_init(php_http_client_t *client, void *use ctx->closure.internal_function.handler = php_http_client_curl_user_handler; MAKE_STD_ZVAL(zclosure); +#if PHP_VERSION_ID >= 50400 zend_create_closure(zclosure, &ctx->closure, NULL, NULL TSRMLS_CC); +#else + zend_create_closure(zclosure, &ctx->closure TSRMLS_CC); +#endif args[0] = &zclosure; php_http_object_method_init(&init, ctx->user, ZEND_STRL("init") TSRMLS_CC); @@ -278,7 +286,8 @@ php_http_client_curl_ops_t *php_http_client_curl_user_ops_get() zend_class_entry *php_http_client_curl_user_class_entry; ZEND_BEGIN_ARG_INFO_EX(ai_init, 0, 0, 1) - ZEND_ARG_TYPE_INFO(0, run, IS_CALLABLE, 0) + /* using IS_CALLABLE type hint would create a forwards compatibility break */ + ZEND_ARG_INFO(0, run) ZEND_END_ARG_INFO(); ZEND_BEGIN_ARG_INFO_EX(ai_timer, 0, 0, 1) #if PHP_VERSION_ID >= 70000