-
WIBUHAX0R1337
-
/
home
/
cideo
/
library
/
Zend
/
XmlRpc
/
Server
/
[ Home ]
Create Folder
Create File
Nama File / Folder
Size
Action
Cache.php
1.476KB
Edit File
Delete File
Rename
Exception.php
1.209KB
Edit File
Delete File
Rename
Fault.php
5.602KB
Edit File
Delete File
Rename
System.php
4.762KB
Edit File
Delete File
Rename
<?php /** * Zend Framework * * LICENSE * * This source file is subject to the new BSD license that is bundled * with this package in the file LICENSE.txt. * It is also available through the world-wide-web at this URL: * http://framework.zend.com/license/new-bsd * If you did not receive a copy of the license and are unable to * obtain it through the world-wide-web, please send an email * to license@zend.com so we can send you a copy immediately. * * @category Zend * @package Zend_XmlRpc * @subpackage Server * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License * @version $Id$ */ /** * XML-RPC system.* methods * * @category Zend * @package Zend_XmlRpc * @subpackage Server * @copyright Copyright (c) 2005-2008 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ class Zend_XmlRpc_Server_System { /** * Constructor * * @param Zend_XmlRpc_Server $server * @return void */ public function __construct(Zend_XmlRpc_Server $server) { $this->_server = $server; } /** * List all available XMLRPC methods * * Returns an array of methods. * * @return array */ public function listMethods() { $table = $this->_server->getDispatchTable()->getMethods(); return array_keys($table); } /** * Display help message for an XMLRPC method * * @param string $method * @return string */ public function methodHelp($method) { $table = $this->_server->getDispatchTable(); if (!$table->hasMethod($method)) { throw new Zend_Server_Exception('Method "' . $method . '"does not exist', 640); } return $table->getMethod($method)->getMethodHelp(); } /** * Return a method signature * * @param string $method * @return array */ public function methodSignature($method) { $table = $this->_server->getDispatchTable(); if (!$table->hasMethod($method)) { throw new Zend_Server_Exception('Method "' . $method . '"does not exist', 640); } $method = $table->getMethod($method)->toArray(); return $method['prototypes']; } /** * Multicall - boxcar feature of XML-RPC for calling multiple methods * in a single request. * * Expects a an array of structs representing method calls, each element * having the keys: * - methodName * - params * * Returns an array of responses, one for each method called, with the value * returned by the method. If an error occurs for a given method, returns a * struct with a fault response. * * @see http://www.xmlrpc.com/discuss/msgReader$1208 * @param array $methods * @return array */ public function multicall($methods) { $responses = array(); foreach ($methods as $method) { $fault = false; if (!is_array($method)) { $fault = $this->_server->fault('system.multicall expects each method to be a struct', 601); } elseif (!isset($method['methodName'])) { $fault = $this->_server->fault('Missing methodName: ' . var_export($methods, 1), 602); } elseif (!isset($method['params'])) { $fault = $this->_server->fault('Missing params', 603); } elseif (!is_array($method['params'])) { $fault = $this->_server->fault('Params must be an array', 604); } else { if ('system.multicall' == $method['methodName']) { // don't allow recursive calls to multicall $fault = $this->_server->fault('Recursive system.multicall forbidden', 605); } } if (!$fault) { try { $request = new Zend_XmlRpc_Request(); $request->setMethod($method['methodName']); $request->setParams($method['params']); $response = $this->_server->handle($request); $responses[] = $response->getReturnValue(); } catch (Exception $e) { $fault = $this->_server->fault($e); } } if ($fault) { $responses[] = array( 'faultCode' => $fault->getCode(), 'faultString' => $fault->getMessage() ); } } return $responses; } }
© 2022 - 2023 WIBUHAXOR V1 By Lutfifakee || Padang Blackhat