summaryrefslogtreecommitdiff
path: root/ext/curl
diff options
context:
space:
mode:
Diffstat (limited to 'ext/curl')
-rw-r--r--ext/curl/curl.stub.php147
-rw-r--r--ext/curl/curl_arginfo.h132
-rw-r--r--ext/curl/curl_file.c27
-rw-r--r--ext/curl/curl_file.stub.php24
-rw-r--r--ext/curl/curl_file_arginfo.h22
-rw-r--r--ext/curl/interface.c177
-rw-r--r--ext/curl/multi.c26
-rw-r--r--ext/curl/php_curl.h2
-rw-r--r--ext/curl/share.c8
-rw-r--r--ext/curl/tests/curl_multi_close_basic001.phpt12
-rw-r--r--ext/curl/tests/curl_setopt_error.phpt32
11 files changed, 375 insertions, 234 deletions
diff --git a/ext/curl/curl.stub.php b/ext/curl/curl.stub.php
new file mode 100644
index 0000000000..f5bd6daacf
--- /dev/null
+++ b/ext/curl/curl.stub.php
@@ -0,0 +1,147 @@
+<?php
+
+/** @param resource $handle */
+function curl_close($handle): void {}
+
+/**
+ * @param resource $handle
+ *
+ * @return resource|false
+ */
+function curl_copy_handle($handle) {}
+
+/** @param resource $handle */
+function curl_errno($handle): int {}
+
+/** @param resource $handle */
+function curl_error($handle): string {}
+
+/**
+ * @param resource $handle
+ *
+ * @return string|false
+ */
+function curl_escape($handle, string $string) {}
+
+/**
+ * @param resource $handle
+ *
+ * @return string|bool
+ */
+function curl_exec($handle) {}
+
+function curl_file_create(
+ string $filename,
+ string $mimetype = UNKNOWN,
+ string $postname = UNKNOWN
+): CURLFile {}
+
+/**
+ * @param resource $handle
+ *
+ * @return mixed
+ */
+function curl_getinfo($handle, int $option = UNKNOWN) {}
+
+/**
+ * @param resource $handle
+ *
+ * @return resource|false
+ */
+function curl_init(string $url = UNKNOWN) {}
+
+/**
+ * @param resource $multi_handle
+ * @param resource $handle
+ */
+function curl_multi_add_handle($multi_handle, $handle): int {}
+
+/** @param resource $multi_handle */
+function curl_multi_close($multi_handle): void {}
+
+/**
+ * @param resource $multi_handle
+ *
+ * @return int|false
+ */
+function curl_multi_errno($multi_handle): int {}
+
+/** @param resource $multi_handle */
+function curl_multi_exec($multi_handle, &$still_running): int {}
+
+/** @param resource $multi_handle */
+function curl_multi_getcontent($multi_handle): ?string {}
+
+/**
+ * @param resource $multi_handle
+ *
+ * @return array|false
+ */
+function curl_multi_info_read($multi_handle, &$msgs_in_queue = null) {}
+
+/** @return resource */
+function curl_multi_init() {}
+
+/**
+ * @param resource $multi_handle
+ * @param resource $handle
+ */
+function curl_multi_remove_handle($multi_handle, $handle): int {}
+
+/** @param resource $multi_handle */
+function curl_multi_select($multi_handle, float $timeout = 1.0): int {}
+
+/**
+ * @param resource $multi_handle
+ * @param mixed $value
+ */
+function curl_multi_setopt($multi_handle, int $option, $value): bool {}
+
+function curl_multi_strerror(int $error_number): ?string {}
+
+#if LIBCURL_VERSION_NUM >= 0x071200 /* 7.18.0 */
+/** @param resource $handle */
+function curl_pause($handle, int $bitmask): int {}
+#endif
+
+/** @param resource $handle */
+function curl_reset($handle): void {}
+
+/**
+ * @param resource $handle
+ * @param array<int, mixed> $options
+ */
+function curl_setopt_array($handle, array $options): bool {}
+
+
+/**
+ * @param resource $handle
+ * @param mixed $value
+ */
+function curl_setopt($handle, int $option, $value): bool {}
+
+/** @param resource $share_handle */
+function curl_share_close($share_handle): void {}
+
+/** @param resource $share_handle */
+function curl_share_errno($share_handle): int {}
+
+/** @return resource */
+function curl_share_init() {}
+
+/** @param resource $share_handle */
+function curl_share_setopt($share_handle, int $option, $value): bool {}
+
+function curl_share_strerror(int $error_number): ?string {}
+
+function curl_strerror(int $error_number): ?string {}
+
+/**
+ * @param resource $handle
+ *
+ * @return string|false
+ */
+function curl_unescape($handle, string $string) {}
+
+/** @return array|false */
+function curl_version(int $age = UNKNOWN) {}
diff --git a/ext/curl/curl_arginfo.h b/ext/curl/curl_arginfo.h
new file mode 100644
index 0000000000..561c0a7684
--- /dev/null
+++ b/ext/curl/curl_arginfo.h
@@ -0,0 +1,132 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_close, 0, 1, IS_VOID, 0)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_copy_handle, 0, 0, 1)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_errno, 0, 1, IS_LONG, 0)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_error, 0, 1, IS_STRING, 0)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_escape, 0, 0, 2)
+ ZEND_ARG_INFO(0, handle)
+ ZEND_ARG_TYPE_INFO(0, string, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_curl_exec arginfo_curl_copy_handle
+
+ZEND_BEGIN_ARG_WITH_RETURN_OBJ_INFO_EX(arginfo_curl_file_create, 0, 1, CURLFile, 0)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, mimetype, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, postname, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_getinfo, 0, 0, 1)
+ ZEND_ARG_INFO(0, handle)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_init, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, url, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_add_handle, 0, 2, IS_LONG, 0)
+ ZEND_ARG_INFO(0, multi_handle)
+ ZEND_ARG_INFO(0, handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_close, 0, 1, IS_VOID, 0)
+ ZEND_ARG_INFO(0, multi_handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_errno, 0, 1, IS_LONG, 0)
+ ZEND_ARG_INFO(0, multi_handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_exec, 0, 2, IS_LONG, 0)
+ ZEND_ARG_INFO(0, multi_handle)
+ ZEND_ARG_INFO(1, still_running)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_getcontent, 0, 1, IS_STRING, 1)
+ ZEND_ARG_INFO(0, multi_handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_multi_info_read, 0, 0, 1)
+ ZEND_ARG_INFO(0, multi_handle)
+ ZEND_ARG_INFO(1, msgs_in_queue)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_multi_init, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_curl_multi_remove_handle arginfo_curl_multi_add_handle
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_select, 0, 1, IS_LONG, 0)
+ ZEND_ARG_INFO(0, multi_handle)
+ ZEND_ARG_TYPE_INFO(0, timeout, IS_DOUBLE, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_setopt, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, multi_handle)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_multi_strerror, 0, 1, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, error_number, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+
+#if LIBCURL_VERSION_NUM >= 0x071200 /* 7.18.0 */
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_pause, 0, 2, IS_LONG, 0)
+ ZEND_ARG_INFO(0, handle)
+ ZEND_ARG_TYPE_INFO(0, bitmask, IS_LONG, 0)
+ZEND_END_ARG_INFO()
+#endif
+
+#define arginfo_curl_reset arginfo_curl_close
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_setopt_array, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, handle)
+ ZEND_ARG_TYPE_INFO(0, options, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_setopt, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, handle)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_share_close, 0, 1, IS_VOID, 0)
+ ZEND_ARG_INFO(0, share_handle)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_share_errno, 0, 1, IS_LONG, 0)
+ ZEND_ARG_INFO(0, share_handle)
+ZEND_END_ARG_INFO()
+
+#define arginfo_curl_share_init arginfo_curl_multi_init
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_curl_share_setopt, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, share_handle)
+ ZEND_ARG_TYPE_INFO(0, option, IS_LONG, 0)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+#define arginfo_curl_share_strerror arginfo_curl_multi_strerror
+
+#define arginfo_curl_strerror arginfo_curl_multi_strerror
+
+#define arginfo_curl_unescape arginfo_curl_escape
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_version, 0, 0, 0)
+ ZEND_ARG_TYPE_INFO(0, age, IS_LONG, 0)
+ZEND_END_ARG_INFO()
diff --git a/ext/curl/curl_file.c b/ext/curl/curl_file.c
index a35e29147c..3241a8e31b 100644
--- a/ext/curl/curl_file.c
+++ b/ext/curl/curl_file.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -24,6 +22,8 @@
#include "Zend/zend_exceptions.h"
#include "Zend/zend_interfaces.h"
#include "php_curl.h"
+#include "curl_arginfo.h"
+#include "curl_file_arginfo.h"
#if HAVE_CURL
PHP_CURL_API zend_class_entry *curl_CURLFile_class;
@@ -131,24 +131,13 @@ ZEND_METHOD(CURLFile, setPostFilename)
}
/* }}} */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curlfile_create, 0, 0, 1)
- ZEND_ARG_INFO(0, filename)
- ZEND_ARG_INFO(0, mimetype)
- ZEND_ARG_INFO(0, postname)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curlfile_name, 0)
- ZEND_ARG_INFO(0, name)
-ZEND_END_ARG_INFO()
-
-
static const zend_function_entry curlfile_funcs[] = {
- PHP_ME(CURLFile, __construct, arginfo_curlfile_create, ZEND_ACC_PUBLIC)
- PHP_ME(CURLFile, getFilename, NULL, ZEND_ACC_PUBLIC)
- PHP_ME(CURLFile, getMimeType, NULL, ZEND_ACC_PUBLIC)
- PHP_ME(CURLFile, setMimeType, arginfo_curlfile_name, ZEND_ACC_PUBLIC)
- PHP_ME(CURLFile, getPostFilename, NULL, ZEND_ACC_PUBLIC)
- PHP_ME(CURLFile, setPostFilename, arginfo_curlfile_name, ZEND_ACC_PUBLIC)
+ PHP_ME(CURLFile, __construct, arginfo_class_CURLFile___construct, ZEND_ACC_PUBLIC)
+ PHP_ME(CURLFile, getFilename, arginfo_class_CURLFile_getFilename, ZEND_ACC_PUBLIC)
+ PHP_ME(CURLFile, getMimeType, arginfo_class_CURLFile_getMimeType, ZEND_ACC_PUBLIC)
+ PHP_ME(CURLFile, setMimeType, arginfo_class_CURLFile_setMimeType, ZEND_ACC_PUBLIC)
+ PHP_ME(CURLFile, getPostFilename, arginfo_class_CURLFile_getPostFilename, ZEND_ACC_PUBLIC)
+ PHP_ME(CURLFile, setPostFilename, arginfo_class_CURLFile_setPostFilename, ZEND_ACC_PUBLIC)
PHP_FE_END
};
diff --git a/ext/curl/curl_file.stub.php b/ext/curl/curl_file.stub.php
new file mode 100644
index 0000000000..e6e21f9a02
--- /dev/null
+++ b/ext/curl/curl_file.stub.php
@@ -0,0 +1,24 @@
+<?php
+
+class CURLFile {
+ public function __construct(
+ string $filename,
+ string $mimetype = UNKNOWN,
+ string $postname = UNKNOWN
+ ) {}
+
+ /** @return string */
+ public function getFilename() {}
+
+ /** @return string */
+ public function getMimeType() {}
+
+ /** @return string */
+ public function getPostFilename() {}
+
+ /** @return void */
+ public function setMimeType(string $mime) {}
+
+ /** @return void */
+ public function setPostFilename(string $postname) {}
+}
diff --git a/ext/curl/curl_file_arginfo.h b/ext/curl/curl_file_arginfo.h
new file mode 100644
index 0000000000..df50ab29dd
--- /dev/null
+++ b/ext/curl/curl_file_arginfo.h
@@ -0,0 +1,22 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CURLFile___construct, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, filename, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, mimetype, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, postname, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CURLFile_getFilename, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+#define arginfo_class_CURLFile_getMimeType arginfo_class_CURLFile_getFilename
+
+#define arginfo_class_CURLFile_getPostFilename arginfo_class_CURLFile_getFilename
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CURLFile_setMimeType, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, mime, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_class_CURLFile_setPostFilename, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, postname, IS_STRING, 0)
+ZEND_END_ARG_INFO()
diff --git a/ext/curl/interface.c b/ext/curl/interface.c
index 6a25359597..abb4a8a688 100644
--- a/ext/curl/interface.c
+++ b/ext/curl/interface.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -68,6 +66,7 @@
#include "ext/standard/file.h"
#include "ext/standard/url.h"
#include "php_curl.h"
+#include "curl_arginfo.h"
int le_curl;
int le_curl_multi_handle;
@@ -241,154 +240,6 @@ void _php_curl_verify_handlers(php_curl *ch, int reporterror) /* {{{ */
}
/* }}} */
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_version, 0, 0, 0)
- ZEND_ARG_INFO(0, version)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_init, 0, 0, 0)
- ZEND_ARG_INFO(0, url)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_copy_handle, 0)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_setopt, 0)
- ZEND_ARG_INFO(0, ch)
- ZEND_ARG_INFO(0, option)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_setopt_array, 0)
- ZEND_ARG_INFO(0, ch)
- ZEND_ARG_ARRAY_INFO(0, options, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_exec, 0)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_getinfo, 0, 0, 1)
- ZEND_ARG_INFO(0, ch)
- ZEND_ARG_INFO(0, option)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_error, 0)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_errno, 0)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_close, 0)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_reset, 0)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_escape, 0)
- ZEND_ARG_INFO(0, ch)
- ZEND_ARG_INFO(0, str)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_unescape, 0)
- ZEND_ARG_INFO(0, ch)
- ZEND_ARG_INFO(0, str)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_setopt, 0)
- ZEND_ARG_INFO(0, sh)
- ZEND_ARG_INFO(0, option)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_init, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_add_handle, 0)
- ZEND_ARG_INFO(0, mh)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_remove_handle, 0)
- ZEND_ARG_INFO(0, mh)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_multi_select, 0, 0, 1)
- ZEND_ARG_INFO(0, mh)
- ZEND_ARG_INFO(0, timeout)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_multi_exec, 0, 0, 1)
- ZEND_ARG_INFO(0, mh)
- ZEND_ARG_INFO(1, still_running)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_getcontent, 0)
- ZEND_ARG_INFO(0, ch)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curl_multi_info_read, 0, 0, 1)
- ZEND_ARG_INFO(0, mh)
- ZEND_ARG_INFO(1, msgs_in_queue)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_close, 0)
- ZEND_ARG_INFO(0, mh)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_errno, 0)
- ZEND_ARG_INFO(0, mh)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_strerror, 0)
- ZEND_ARG_INFO(0, errornum)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_multi_strerror, 0)
- ZEND_ARG_INFO(0, errornum)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_share_strerror, 0)
- ZEND_ARG_INFO(0, errornum)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_share_init, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_share_close, 0)
- ZEND_ARG_INFO(0, sh)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_share_setopt, 0)
- ZEND_ARG_INFO(0, sh)
- ZEND_ARG_INFO(0, option)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_curl_share_errno, 0)
- ZEND_ARG_INFO(0, sh)
-ZEND_END_ARG_INFO()
-
-#if LIBCURL_VERSION_NUM >= 0x071200 /* Available since 7.18.0 */
-ZEND_BEGIN_ARG_INFO(arginfo_curl_pause, 0)
- ZEND_ARG_INFO(0, ch)
- ZEND_ARG_INFO(0, bitmask)
-ZEND_END_ARG_INFO()
-#endif
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_curlfile_create, 0, 0, 1)
- ZEND_ARG_INFO(0, filename)
- ZEND_ARG_INFO(0, mimetype)
- ZEND_ARG_INFO(0, postname)
-ZEND_END_ARG_INFO()
-/* }}} */
-
/* {{{ curl_functions[]
*/
static const zend_function_entry curl_functions[] = {
@@ -411,6 +262,7 @@ static const zend_function_entry curl_functions[] = {
#if LIBCURL_VERSION_NUM >= 0x071200 /* 7.18.0 */
PHP_FE(curl_pause, arginfo_curl_pause)
#endif
+ PHP_FE(curl_file_create, arginfo_curl_file_create)
PHP_FE(curl_multi_init, arginfo_curl_multi_init)
PHP_FE(curl_multi_add_handle, arginfo_curl_multi_add_handle)
PHP_FE(curl_multi_remove_handle, arginfo_curl_multi_remove_handle)
@@ -425,7 +277,6 @@ static const zend_function_entry curl_functions[] = {
PHP_FE(curl_share_close, arginfo_curl_share_close)
PHP_FE(curl_share_setopt, arginfo_curl_share_setopt)
PHP_FE(curl_share_errno, arginfo_curl_share_errno)
- PHP_FE(curl_file_create, arginfo_curlfile_create)
PHP_FE_END
};
/* }}} */
@@ -2108,7 +1959,7 @@ PHP_FUNCTION(curl_copy_handle)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
cp = curl_easy_duphandle(ch->cp);
@@ -3074,7 +2925,7 @@ PHP_FUNCTION(curl_setopt)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (options <= 0 && options != CURLOPT_SAFE_UPLOAD) {
@@ -3105,7 +2956,7 @@ PHP_FUNCTION(curl_setopt_array)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
ZEND_HASH_FOREACH_KEY_VAL(Z_ARRVAL_P(arr), option, string_key, entry) {
@@ -3152,7 +3003,7 @@ PHP_FUNCTION(curl_exec)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
_php_curl_verify_handlers(ch, 1);
@@ -3211,7 +3062,7 @@ PHP_FUNCTION(curl_getinfo)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ZEND_NUM_ARGS() < 2) {
@@ -3475,7 +3326,7 @@ PHP_FUNCTION(curl_error)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ch->err.no) {
@@ -3499,7 +3350,7 @@ PHP_FUNCTION(curl_errno)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(ch->err.no);
@@ -3518,7 +3369,7 @@ PHP_FUNCTION(curl_close)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ch->in_callback) {
@@ -3692,7 +3543,7 @@ PHP_FUNCTION(curl_reset)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ch->in_callback) {
@@ -3721,7 +3572,7 @@ PHP_FUNCTION(curl_escape)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ZEND_SIZE_T_INT_OVFL(ZSTR_LEN(str))) {
@@ -3753,7 +3604,7 @@ PHP_FUNCTION(curl_unescape)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ZEND_SIZE_T_INT_OVFL(ZSTR_LEN(str))) {
@@ -3784,7 +3635,7 @@ PHP_FUNCTION(curl_pause)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl*)zend_fetch_resource(Z_RES_P(zid), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(curl_easy_pause(ch->cp, bitmask));
diff --git a/ext/curl/multi.c b/ext/curl/multi.c
index 4ba165a09d..bbed3fe1f2 100644
--- a/ext/curl/multi.c
+++ b/ext/curl/multi.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -85,11 +83,11 @@ PHP_FUNCTION(curl_multi_add_handle)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ch = (php_curl *)zend_fetch_resource(Z_RES_P(z_ch), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
_php_curl_cleanup_handle(ch);
@@ -171,11 +169,11 @@ PHP_FUNCTION(curl_multi_remove_handle)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
if ((ch = (php_curl *)zend_fetch_resource(Z_RES_P(z_ch), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
error = curl_multi_remove_handle(mh->multi, ch->cp);
@@ -224,7 +222,7 @@ PHP_FUNCTION(curl_multi_select)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
#if LIBCURL_VERSION_NUM >= 0x071c00 /* Available since 7.28.0 */
@@ -269,7 +267,7 @@ PHP_FUNCTION(curl_multi_exec)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
{
@@ -281,7 +279,7 @@ PHP_FUNCTION(curl_multi_exec)
pz_ch = (zval *)zend_llist_get_next_ex(&mh->easyh, &pos)) {
if ((ch = (php_curl *)zend_fetch_resource(Z_RES_P(pz_ch), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
_php_curl_verify_handlers(ch, 1);
@@ -309,7 +307,7 @@ PHP_FUNCTION(curl_multi_getcontent)
ZEND_PARSE_PARAMETERS_END();
if ((ch = (php_curl *)zend_fetch_resource(Z_RES_P(z_ch), le_curl_name, le_curl)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (ch->handlers->write->method == PHP_CURL_RETURN) {
@@ -342,7 +340,7 @@ PHP_FUNCTION(curl_multi_info_read)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
tmp_msg = curl_multi_info_read(mh->multi, &queued_msgs);
@@ -396,7 +394,7 @@ PHP_FUNCTION(curl_multi_close)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
zend_list_close(Z_RES_P(z_mh));
@@ -448,7 +446,7 @@ PHP_FUNCTION(curl_multi_errno)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(mh->err.no);
@@ -627,7 +625,7 @@ PHP_FUNCTION(curl_multi_setopt)
ZEND_PARSE_PARAMETERS_END();
if ((mh = (php_curlm *)zend_fetch_resource(Z_RES_P(z_mh), le_curl_multi_handle_name, le_curl_multi_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (!_php_curl_multi_setopt(mh, options, zvalue, return_value)) {
diff --git a/ext/curl/php_curl.h b/ext/curl/php_curl.h
index 5d93f16c03..44a86bff8b 100644
--- a/ext/curl/php_curl.h
+++ b/ext/curl/php_curl.h
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
diff --git a/ext/curl/share.c b/ext/curl/share.c
index 242cad09cd..2814d0b822 100644
--- a/ext/curl/share.c
+++ b/ext/curl/share.c
@@ -1,7 +1,5 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -62,7 +60,7 @@ PHP_FUNCTION(curl_share_close)
ZEND_PARSE_PARAMETERS_END();
if ((sh = (php_curlsh *)zend_fetch_resource(Z_RES_P(z_sh), le_curl_share_handle_name, le_curl_share_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
zend_list_close(Z_RES_P(z_sh));
@@ -106,7 +104,7 @@ PHP_FUNCTION(curl_share_setopt)
ZEND_PARSE_PARAMETERS_END();
if ((sh = (php_curlsh *)zend_fetch_resource(Z_RES_P(zid), le_curl_share_handle_name, le_curl_share_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
if (!_php_curl_share_setopt(sh, options, zvalue, return_value)) {
@@ -140,7 +138,7 @@ PHP_FUNCTION(curl_share_errno)
ZEND_PARSE_PARAMETERS_END();
if ((sh = (php_curlsh *)zend_fetch_resource(Z_RES_P(z_sh), le_curl_share_handle_name, le_curl_share_handle)) == NULL) {
- RETURN_FALSE;
+ return;
}
RETURN_LONG(sh->err.no);
diff --git a/ext/curl/tests/curl_multi_close_basic001.phpt b/ext/curl/tests/curl_multi_close_basic001.phpt
index 0cabf2cbad..cf47668b30 100644
--- a/ext/curl/tests/curl_multi_close_basic001.phpt
+++ b/ext/curl/tests/curl_multi_close_basic001.phpt
@@ -11,15 +11,17 @@ var_dump($cmh);
$multi_close_result = curl_multi_close($cmh);
var_dump($multi_close_result);
var_dump($cmh);
-$bad_mh_close_result = curl_multi_close($cmh);
-var_dump($bad_mh_close_result);
+try {
+ $bad_mh_close_result = curl_multi_close($cmh);
+ var_dump($bad_mh_close_result);
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
?>
===DONE===
--EXPECTF--
resource(%d) of type (curl_multi)
NULL
resource(%d) of type (Unknown)
-
-Warning: curl_multi_close(): supplied resource is not a valid cURL Multi Handle resource in %s on line %d
-bool(false)
+curl_multi_close(): supplied resource is not a valid cURL Multi Handle resource
===DONE===
diff --git a/ext/curl/tests/curl_setopt_error.phpt b/ext/curl/tests/curl_setopt_error.phpt
index ab864d4b2d..0a7db7265f 100644
--- a/ext/curl/tests/curl_setopt_error.phpt
+++ b/ext/curl/tests/curl_setopt_error.phpt
@@ -9,37 +9,17 @@ Paul Sohier
<?php
echo "*** curl_setopt() call with incorrect parameters\n";
$ch = curl_init();
-curl_setopt();
-curl_setopt(false);
-curl_setopt($ch);
-curl_setopt($ch, false);
-curl_setopt($ch, -10);
-curl_setopt($ch, '');
-curl_setopt($ch, 1, false);
+try {
+ curl_setopt($ch, '', false);
+} catch (TypeError $e) {
+ echo $e->getMessage(), "\n";
+}
-curl_setopt(false, false, false);
-curl_setopt($ch, '', false);
-curl_setopt($ch, 1, '');
curl_setopt($ch, -10, 0);
?>
--EXPECTF--
*** curl_setopt() call with incorrect parameters
-
-Warning: curl_setopt() expects exactly 3 parameters, 0 given in %s on line %d
-
-Warning: curl_setopt() expects exactly 3 parameters, 1 given in %s on line %d
-
-Warning: curl_setopt() expects exactly 3 parameters, 1 given in %s on line %d
-
-Warning: curl_setopt() expects exactly 3 parameters, 2 given in %s on line %d
-
-Warning: curl_setopt() expects exactly 3 parameters, 2 given in %s on line %d
-
-Warning: curl_setopt() expects exactly 3 parameters, 2 given in %s on line %d
-
-Warning: curl_setopt() expects parameter 1 to be resource, bool given in %s on line %d
-
-Warning: curl_setopt() expects parameter 2 to be int, string given in %s on line %d
+curl_setopt() expects parameter 2 to be int, string given
Warning: curl_setopt(): Invalid curl configuration option in %scurl_setopt_error.php on line %d