X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=debugger%2Faction.php;h=5427f675dbfd649c05cb5e8ca2e27aa7bffff9d9;hb=cc67a43993662a5a3f92801b96b89ee6e3998532;hp=18d92953e5fe08ea6cf7f2ee19d2a04751feb701;hpb=393f882cb3a8a040bd7a0eb8da3c05cfacb8af99;p=plcapi.git
diff --git a/debugger/action.php b/debugger/action.php
index 18d9295..5427f67 100644
--- a/debugger/action.php
+++ b/debugger/action.php
@@ -284,7 +284,7 @@ if ($action) {
$v = $response->value();
if ($v->kindOf() == "array") {
- $max = $v->arraysize();
+ $max = $v->count();
echo "
\n";
echo "\nMethod ($max) | Description |
\n\n\n";
for ($i = 0; $i < $max; $i++) {
@@ -367,22 +367,29 @@ if ($action) {
if ($x->kindOf() == "array") {
$ret = $x->arraymem(0);
echo "OUT: " . htmlspecialchars($ret->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) . "
IN: (";
- if ($x->arraysize() > 1) {
+ if ($x->count() > 1) {
for ($k = 1; $k < $x->arraysize(); $k++) {
$y = $x->arraymem($k);
echo htmlspecialchars($y->scalarval(), ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding);
if ($wstype != 1) {
$type = $y->scalarval();
- if ($type == 'null') {
- $type = 'nil';
+ $payload .= '';
+ switch($type) {
+ case 'undefined':
+ break;
+ case 'null';
+ $type = 'nil';
+ // fall thru intentionally
+ default:
+ $payload .= '<' .
+ htmlspecialchars($type, ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) .
+ '>' . htmlspecialchars($type, ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) .
+ '>';
}
- $payload = $payload . '<' .
- htmlspecialchars($type, ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) .
- '>' . htmlspecialchars($type, ENT_COMPAT, \PhpXmlRpc\PhpXmlRpc::$xmlrpc_internalencoding) .
- ">\n";
+ $payload .= "\n";
}
$alt_payload .= $y->scalarval();
- if ($k < $x->arraysize() - 1) {
+ if ($k < $x->count() - 1) {
$alt_payload .= ';';
echo ", ";
}
@@ -463,7 +470,7 @@ if ($action) {
case 'wrap':
$r1 = $resp[0]->value();
$r2 = $resp[1]->value();
- if ($r2->kindOf() != "array" || $r2->arraysize() <= $methodsig) {
+ if ($r2->kindOf() != "array" || $r2->count() <= $methodsig) {
echo "Error: signature unknown\n";
} else {
$mdesc = $r1->scalarval();
@@ -474,18 +481,17 @@ if ($action) {
if ($proxy == '' && $username == '' && !$requestcompression && !$responsecompression &&
$clientcookies == ''
) {
- $opts = 0; // simple client copy in stub code
+ $opts = 1; // simple client copy in stub code
} else {
- $opts = 1; // complete client copy in stub code
+ $opts = 0; // complete client copy in stub code
}
if ($wstype == 1) {
$prefix = 'jsonrpc';
} else {
$prefix = 'xmlrpc';
}
- //$code = wrap_xmlrpc_method($client, $method, $methodsig, 0, $proto, '', $opts);
$wrapper = new PhpXmlRpc\Wrapper();
- $code = $wrapper->build_remote_method_wrapper_code($client, $method, str_replace('.', '_', $prefix . '_' . $method), $msig, $mdesc, $timeout, $proto, $opts, $prefix);
+ $code = $wrapper->buildWrapMethodSource($client, $method, array('timeout' => $timeout, 'protocol' => $proto, 'simple_client_copy' => $opts, 'prefix' => $prefix), str_replace('.', '_', $prefix . '_' . $method), $msig, $mdesc);
//if ($code)
//{
echo "\n";
@@ -537,6 +543,7 @@ if ($action) {
Changelog
+ - 2015-05-30: fix problems with generating method payloads for NIL and Undefined parameters
- 2015-04-19: fix problems with LATIN-1 characters in payload
- 2007-02-20: add visual editor for method payload; allow strings, bools as jsonrpc msg id
- 2006-06-26: support building php code stub for calling remote methods