diff options
Diffstat (limited to 'ext/xmlrpc/xmlrpc-epi-php.c')
-rw-r--r-- | ext/xmlrpc/xmlrpc-epi-php.c | 107 |
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 |