summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorThomas Gerbet <thomas@gerbet.me>2019-10-05 17:41:15 +0200
committerChristoph M. Becker <cmbecker69@gmx.de>2019-10-06 13:47:21 +0200
commitff00f4967340f859ee8da5f689994b20dcabbe05 (patch)
tree4081b40f2d508caf81537cfafc6c99f63dbba408
parent21e631e4738055c0bbf1f8e768a2968f07290bc8 (diff)
downloadphp-git-ff00f4967340f859ee8da5f689994b20dcabbe05.tar.gz
Add stubs for ext-xmlrpc
-rw-r--r--ext/xmlrpc/xmlrpc-epi-php.c69
-rw-r--r--ext/xmlrpc/xmlrpc.stub.php33
-rw-r--r--ext/xmlrpc/xmlrpc_arginfo.h65
3 files changed, 100 insertions, 67 deletions
diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c
index 44e628278d..a3f54b8bcb 100644
--- a/ext/xmlrpc/xmlrpc-epi-php.c
+++ b/ext/xmlrpc/xmlrpc-epi-php.c
@@ -68,75 +68,10 @@
#include "php_ini.h"
#include "php_xmlrpc.h"
#include "xmlrpc.h"
+#include "xmlrpc_arginfo.h"
static int le_xmlrpc_server;
-/* {{{ arginfo */
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_encode, 0, 0, 1)
- ZEND_ARG_INFO(0, value)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode, 0, 0, 1)
- ZEND_ARG_INFO(0, value)
- ZEND_ARG_INFO(0, encoding)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode_request, 0, 0, 2)
- ZEND_ARG_INFO(0, xml)
- ZEND_ARG_INFO(1, method)
- ZEND_ARG_INFO(0, encoding)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_encode_request, 0, 0, 2)
- ZEND_ARG_INFO(0, method)
- ZEND_ARG_INFO(0, params)
- ZEND_ARG_INFO(0, output_options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_set_type, 0, 0, 2)
- ZEND_ARG_INFO(1, value)
- ZEND_ARG_INFO(0, type)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_is_fault, 0, 0, 1)
- ZEND_ARG_INFO(0, arg)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO(arginfo_xmlrpc_server_create, 0)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_destroy, 0, 0, 1)
- ZEND_ARG_INFO(0, server)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_register_method, 0, 0, 3)
- ZEND_ARG_INFO(0, server)
- ZEND_ARG_INFO(0, method_name)
- ZEND_ARG_INFO(0, function)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_call_method, 0, 0, 3)
- ZEND_ARG_INFO(0, server)
- ZEND_ARG_INFO(0, xml)
- ZEND_ARG_INFO(0, user_data)
- ZEND_ARG_INFO(0, output_options)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_parse_method_descriptions, 0, 0, 1)
- ZEND_ARG_INFO(0, xml)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_add_introspection_data, 0, 0, 2)
- ZEND_ARG_INFO(0, server)
- ZEND_ARG_INFO(0, desc)
-ZEND_END_ARG_INFO()
-
-ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_register_introspection_callback, 0, 0, 2)
- ZEND_ARG_INFO(0, server)
- ZEND_ARG_INFO(0, function)
-ZEND_END_ARG_INFO()
-/* }}} */
-
static const zend_function_entry xmlrpc_functions[] = {
PHP_FE(xmlrpc_encode, arginfo_xmlrpc_encode)
PHP_FE(xmlrpc_decode, arginfo_xmlrpc_decode)
@@ -1142,7 +1077,7 @@ PHP_FUNCTION(xmlrpc_server_add_introspection_data)
}
if ((server = (xmlrpc_server_data *)zend_fetch_resource(Z_RES_P(handle), "xmlrpc server", le_xmlrpc_server)) == NULL) {
- RETURN_FALSE;
+ return;
}
xDesc = PHP_to_XMLRPC(desc);
diff --git a/ext/xmlrpc/xmlrpc.stub.php b/ext/xmlrpc/xmlrpc.stub.php
new file mode 100644
index 0000000000..751aa7c325
--- /dev/null
+++ b/ext/xmlrpc/xmlrpc.stub.php
@@ -0,0 +1,33 @@
+<?php
+
+function xmlrpc_encode($value): ?string {}
+
+function xmlrpc_decode(string $xml, string $encoding = "iso-8859-1") {}
+
+function xmlrpc_decode_request(string $xml, &$method, string $encoding = "iso-8859-1") {}
+
+function xmlrpc_encode_request(?string $method, $params, array $output_options = UNKNOWN): ?string {}
+
+function xmlrpc_set_type(&$value, string $type): bool {}
+
+function xmlrpc_is_fault(array $arg): bool {}
+
+/** @return resource */
+function xmlrpc_server_create() {}
+
+/** @param resource $server */
+function xmlrpc_server_destroy($server): bool {}
+
+/** @param resource $server */
+function xmlrpc_server_register_method($server, string $method_name, $function): bool {}
+
+/** @param resource $server */
+function xmlrpc_server_call_method($server, string $xml, $user_data, array $output_options = UNKNOWN) {}
+
+function xmlrpc_parse_method_descriptions(string $xml) {}
+
+/** @param resource $server */
+function xmlrpc_server_add_introspection_data($server, array $desc): int {}
+
+/** @param resource $server */
+function xmlrpc_server_register_introspection_callback($server, $function): bool {}
diff --git a/ext/xmlrpc/xmlrpc_arginfo.h b/ext/xmlrpc/xmlrpc_arginfo.h
new file mode 100644
index 0000000000..5beecc99e6
--- /dev/null
+++ b/ext/xmlrpc/xmlrpc_arginfo.h
@@ -0,0 +1,65 @@
+/* This is a generated file, edit the .stub.php file instead. */
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_encode, 0, 1, IS_STRING, 1)
+ ZEND_ARG_INFO(0, value)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
+ ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_decode_request, 0, 0, 2)
+ ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
+ ZEND_ARG_INFO(1, method)
+ ZEND_ARG_TYPE_INFO(0, encoding, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_encode_request, 0, 2, IS_STRING, 1)
+ ZEND_ARG_TYPE_INFO(0, method, IS_STRING, 1)
+ ZEND_ARG_INFO(0, params)
+ ZEND_ARG_TYPE_INFO(0, output_options, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_set_type, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(1, value)
+ ZEND_ARG_TYPE_INFO(0, type, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_is_fault, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_TYPE_INFO(0, arg, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_create, 0, 0, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_server_destroy, 0, 1, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, server)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_server_register_method, 0, 3, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, server)
+ ZEND_ARG_TYPE_INFO(0, method_name, IS_STRING, 0)
+ ZEND_ARG_INFO(0, function)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_server_call_method, 0, 0, 3)
+ ZEND_ARG_INFO(0, server)
+ ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
+ ZEND_ARG_INFO(0, user_data)
+ ZEND_ARG_TYPE_INFO(0, output_options, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_INFO_EX(arginfo_xmlrpc_parse_method_descriptions, 0, 0, 1)
+ ZEND_ARG_TYPE_INFO(0, xml, IS_STRING, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_server_add_introspection_data, 0, 2, IS_LONG, 0)
+ ZEND_ARG_INFO(0, server)
+ ZEND_ARG_TYPE_INFO(0, desc, IS_ARRAY, 0)
+ZEND_END_ARG_INFO()
+
+ZEND_BEGIN_ARG_WITH_RETURN_TYPE_INFO_EX(arginfo_xmlrpc_server_register_introspection_callback, 0, 2, _IS_BOOL, 0)
+ ZEND_ARG_INFO(0, server)
+ ZEND_ARG_INFO(0, function)
+ZEND_END_ARG_INFO()