diff options
-rw-r--r-- | ext/xmlrpc/xmlrpc-epi-php.c | 69 | ||||
-rw-r--r-- | ext/xmlrpc/xmlrpc.stub.php | 33 | ||||
-rw-r--r-- | ext/xmlrpc/xmlrpc_arginfo.h | 65 |
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() |