X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=debugger%2Faction.php;h=7bb07f50f12d05c06a039b6ed738714595061211;hb=ee97067e0c7de2fc25a0834672f27dcad4468631;hp=2e5e4c560e8521317a153cefccc0d18ad440e7ec;hpb=df75e8d81f7544f743243120d0f876c77e33f90d;p=plcapi.git diff --git a/debugger/action.php b/debugger/action.php index 2e5e4c5..7bb07f5 100644 --- a/debugger/action.php +++ b/debugger/action.php @@ -91,31 +91,33 @@ include __DIR__ . '/common.php'; if ($action) { + include_once __DIR__ . "/../src/Autoloader.php"; + PhpXmlRpc\Autoloader::register(); + // make sure the script waits long enough for the call to complete... if ($timeout) { set_time_limit($timeout + 10); } - include 'xmlrpc.inc'; if ($wstype == 1) { @include 'jsonrpc.inc'; if (!class_exists('jsonrpc_client')) { die('Error: to debug the jsonrpc protocol the jsonrpc.inc file is needed'); } - $clientclass = 'jsonrpc_client'; - $msgclass = 'jsonrpcmsg'; - $protoname = 'JSONRPC'; + $clientClass = 'PhpJsRpc\Client'; + $requestClass = 'PhpJsRpc\Request'; + $protoName = 'JSONRPC'; } else { - $clientclass = 'xmlrpc_client'; - $msgclass = 'xmlrpcmsg'; - $protoname = 'XMLRPC'; + $clientClass = 'PhpXmlRpc\Client'; + $requestClass = 'PhpXmlRpc\Request'; + $protoName = 'XMLRPC'; } if ($port != "") { - $client = new $clientclass($path, $host, $port); + $client = new $clientClass($path, $host, $port); $server = "$host:$port$path"; } else { - $client = new $clientclass($path, $host); + $client = new $clientClass($path, $host); $server = "$host$path"; } if ($protocol == 2) { @@ -189,30 +191,24 @@ if ($action) { $msg = array(); switch ($action) { - - case 'wrap': - @include 'xmlrpc_wrappers.inc'; - if (!function_exists('build_remote_method_wrapper_code')) { - die('Error: to enable creation of method stubs the xmlrpc_wrappers.inc file is needed'); - } // fall thru intentionally case 'describe': case 'wrap': - $msg[0] = new $msgclass('system.methodHelp', array(), $id); - $msg[0]->addparam(new xmlrpcval($method)); - $msg[1] = new $msgclass('system.methodSignature', array(), $id + 1); - $msg[1]->addparam(new xmlrpcval($method)); + $msg[0] = new $requestClass('system.methodHelp', array(), $id); + $msg[0]->addparam(new PhpXmlRpc\Value($method)); + $msg[1] = new $requestClass('system.methodSignature', array(), $id + 1); + $msg[1]->addparam(new PhpXmlRpc\Value($method)); $actionname = 'Description of method "' . $method . '"'; break; case 'list': - $msg[0] = new $msgclass('system.listMethods', array(), $id); + $msg[0] = new $requestClass('system.listMethods', array(), $id); $actionname = 'List of available methods'; break; case 'execute': if (!payload_is_safe($payload)) { die("Tsk tsk tsk, please stop it or I will have to call in the cops!"); } - $msg[0] = new $msgclass($method, array(), $id); + $msg[0] = new $requestClass($method, array(), $id); // hack! build xml payload by hand if ($wstype == 1) { $msg[0]->payload = "{\n" . @@ -230,7 +226,7 @@ if ($action) { } } } else { - $msg[0]->payload = $msg[0]->xml_header() . + $msg[0]->payload = $msg[0]->xml_header($inputcharset) . '' . $method . "\n" . $payload . "\n" . $msg[0]->xml_footer(); @@ -252,18 +248,16 @@ if ($action) { echo '

Debug info:

'; } /// @todo use ob_start instead $resp = array(); - $mtime = explode(' ', microtime()); - $time = (float)$mtime[0] + (float)$mtime[1]; + $time = microtime(true); foreach ($msg as $message) { // catch errors: for older xmlrpc libs, send does not return by ref - @$response = &$client->send($message, $timeout, $httpprotocol); + @$response = $client->send($message, $timeout, $httpprotocol); $resp[] = $response; if (!$response || $response->faultCode()) { break; } } - $mtime = explode(' ', microtime()); - $time = (float)$mtime[0] + (float)$mtime[1] - $time; + $time = microtime(true) - $time; if ($debug) { echo "
\n"; } @@ -272,14 +266,14 @@ if ($action) { if ($response->faultCode()) { // call failed! echo out error msg! //echo '

'.htmlspecialchars($actionname).' on server '.htmlspecialchars($server).'

'; - echo "

$protoname call FAILED!

\n"; + echo "

$protoName call FAILED!

\n"; echo "

Fault code: [" . htmlspecialchars($response->faultCode()) . "] Reason: '" . htmlspecialchars($response->faultString()) . "'

\n"; echo(strftime("%d/%b/%Y:%H:%M:%S\n")); } else { // call succeeded: parse results //echo '

'.htmlspecialchars($actionname).' on server '.htmlspecialchars($server).'

'; - printf("

%s call(s) OK (%.2f secs.)

\n", $protoname, $time); + printf("

%s call(s) OK (%.2f secs.)

\n", $protoName, $time); echo(strftime("%d/%b/%Y:%H:%M:%S\n")); switch ($action) { @@ -324,7 +318,7 @@ if ($action) { ""); //echo("\n"); - // generate lo scheletro per il method payload per eventuali test + // generate the skeleton for method payload per possible tests //$methodpayload="\n".$rec->scalarval()."\n\n\n\n"; /*echo ("
". @@ -388,7 +382,7 @@ if ($action) { echo 'Unknown'; } echo ''; - //bottone per testare questo metodo + // button to test this method //$payload="\n$method\n\n$payload\n"; echo "" . "" . @@ -462,7 +456,8 @@ if ($action) { echo "Error: signature unknown\n"; } else { $mdesc = $r1->scalarval(); - $msig = php_xmlrpc_decode($r2); + $encoder = new PhpXmlRpc\Encoder(); + $msig = $encoder->decode($r2); $msig = $msig[$methodsig]; $proto = $protocol == 2 ? 'https' : $protocol == 1 ? 'http11' : ''; if ($proxy == '' && $username == '' && !$requestcompression && !$responsecompression && @@ -478,7 +473,8 @@ if ($action) { $prefix = 'xmlrpc'; } //$code = wrap_xmlrpc_method($client, $method, $methodsig, 0, $proto, '', $opts); - $code = build_remote_method_wrapper_code($client, $method, str_replace('.', '_', $prefix . '_' . $method), $msig, $mdesc, $timeout, $proto, $opts, $prefix); + $wrapper = new PhpXmlRpc\Wrapper(); + $code = $wrapper->build_remote_method_wrapper_code($client, $method, str_replace('.', '_', $prefix . '_' . $method), $msig, $mdesc, $timeout, $proto, $opts, $prefix); //if ($code) //{ echo "
\n"; @@ -504,7 +500,7 @@ if ($action) { // no action taken yet: give some instructions on debugger usage ?> -

Instructions on usage of the debugger:

+

Instructions on usage of the debugger

  1. Run a 'list available methods' action against desired server
  2. If list of methods appears, click on 'describe method' for desired method
  3. @@ -518,13 +514,13 @@ if ($action) { } ?> -

    Example:

    +

    Example

    Server Address: phpxmlrpc.sourceforge.net
    Path: /server.php

    -

    Notice:

    +

    Notice

    all usernames and passwords entered on the above form will be written to the web server logs of this server. Use with care.