summaryrefslogtreecommitdiff
path: root/ext/xmlrpc/xmlrpc-epi-php.c
diff options
context:
space:
mode:
Diffstat (limited to 'ext/xmlrpc/xmlrpc-epi-php.c')
-rw-r--r--ext/xmlrpc/xmlrpc-epi-php.c107
1 files changed, 20 insertions, 87 deletions
diff --git a/ext/xmlrpc/xmlrpc-epi-php.c b/ext/xmlrpc/xmlrpc-epi-php.c
index 64ae65eec8..a2e9b9f99f 100644
--- a/ext/xmlrpc/xmlrpc-epi-php.c
+++ b/ext/xmlrpc/xmlrpc-epi-php.c
@@ -35,8 +35,6 @@
/*
+----------------------------------------------------------------------+
- | PHP Version 7 |
- +----------------------------------------------------------------------+
| Copyright (c) The PHP Group |
+----------------------------------------------------------------------+
| This source file is subject to version 3.01 of the PHP license, |
@@ -70,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)
@@ -676,7 +609,7 @@ PHP_FUNCTION(xmlrpc_encode_request)
php_output_options out;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s!z|a", &method, &method_len, &vals, &out_opts) == FAILURE) {
- return;
+ RETURN_THROWS();
}
set_output_options(&out, out_opts ? out_opts : 0);
@@ -724,7 +657,7 @@ PHP_FUNCTION(xmlrpc_encode)
char *outBuf;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &arg1) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (USED_RET()) {
@@ -790,7 +723,7 @@ PHP_FUNCTION(xmlrpc_decode_request)
size_t xml_len, encoding_len = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "sz|s", &xml, &xml_len, &method, &encoding, &encoding_len) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (USED_RET()) {
@@ -807,7 +740,7 @@ PHP_FUNCTION(xmlrpc_decode)
size_t arg1_len, arg2_len = 0;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s|s", &arg1, &arg1_len, &arg2, &arg2_len) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (USED_RET()) {
@@ -825,7 +758,7 @@ PHP_FUNCTION(xmlrpc_decode)
PHP_FUNCTION(xmlrpc_server_create)
{
if (zend_parse_parameters_none() == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (USED_RET()) {
@@ -853,11 +786,11 @@ PHP_FUNCTION(xmlrpc_server_destroy)
xmlrpc_server_data *server;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "r", &arg1) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((server = (xmlrpc_server_data *)zend_fetch_resource(Z_RES_P(arg1), "xmlrpc server", le_xmlrpc_server)) == NULL) {
- RETURN_FALSE;
+ RETURN_THROWS();
}
bSuccess = zend_list_close(Z_RES_P(arg1));
@@ -976,11 +909,11 @@ PHP_FUNCTION(xmlrpc_server_register_method)
xmlrpc_server_data* server;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rsz", &handle, &method_key, &method_key_len, &method_name) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((server = (xmlrpc_server_data *)zend_fetch_resource(Z_RES_P(handle), "xmlrpc server", le_xmlrpc_server)) == NULL) {
- RETURN_FALSE;
+ RETURN_THROWS();
}
/* register with C engine. every method just calls our standard callback,
@@ -1006,11 +939,11 @@ PHP_FUNCTION(xmlrpc_server_register_introspection_callback)
xmlrpc_server_data* server;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "rz", &handle, &method_name) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((server = (xmlrpc_server_data *)zend_fetch_resource(Z_RES_P(handle), "xmlrpc server", le_xmlrpc_server)) == NULL) {
- RETURN_FALSE;
+ RETURN_THROWS();
}
Z_TRY_ADDREF_P(method_name);
@@ -1038,7 +971,7 @@ PHP_FUNCTION(xmlrpc_server_call_method)
int argc = ZEND_NUM_ARGS();
if (zend_parse_parameters(argc, "rsz|a", &handle, &rawxml, &rawxml_len, &caller_params, &output_opts) != SUCCESS) {
- return;
+ RETURN_THROWS();
}
/* user output options */
if (argc == 3) {
@@ -1048,7 +981,7 @@ PHP_FUNCTION(xmlrpc_server_call_method)
}
if ((server = (xmlrpc_server_data *)zend_fetch_resource(Z_RES_P(handle), "xmlrpc server", le_xmlrpc_server)) == NULL) {
- RETURN_FALSE;
+ RETURN_THROWS();
}
/* HACK: use output encoding for now */
@@ -1140,11 +1073,11 @@ PHP_FUNCTION(xmlrpc_server_add_introspection_data)
XMLRPC_VALUE xDesc;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "ra", &handle, &desc) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if ((server = (xmlrpc_server_data *)zend_fetch_resource(Z_RES_P(handle), "xmlrpc server", le_xmlrpc_server)) == NULL) {
- RETURN_FALSE;
+ RETURN_THROWS();
}
xDesc = PHP_to_XMLRPC(desc);
@@ -1165,7 +1098,7 @@ PHP_FUNCTION(xmlrpc_parse_method_descriptions)
size_t arg1_len;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "s", &arg1, &arg1_len) == FAILURE) {
- return;
+ RETURN_THROWS();
}
if (USED_RET()) {
@@ -1395,7 +1328,7 @@ PHP_FUNCTION(xmlrpc_set_type)
XMLRPC_VALUE_TYPE vtype;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "zs", &arg, &type, &type_len) == FAILURE) {
- return;
+ RETURN_THROWS();
}
vtype = xmlrpc_str_as_type(type);
@@ -1423,7 +1356,7 @@ PHP_FUNCTION(xmlrpc_get_type)
XMLRPC_VECTOR_TYPE vtype = xmlrpc_vector_none;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "z", &arg) == FAILURE) {
- return;
+ RETURN_THROWS();
}
type = get_zval_xmlrpc_type(arg, 0);
@@ -1442,7 +1375,7 @@ PHP_FUNCTION(xmlrpc_is_fault)
zval *arg;
if (zend_parse_parameters(ZEND_NUM_ARGS(), "a", &arg) == FAILURE) {
- return;
+ RETURN_THROWS();
}
/* The "correct" way to do this would be to call the xmlrpc