XMLRPC library frmo PEAR used

- solved bug: http://bugs.campware.org/view.php?id=480
This commit is contained in:
tomas 2004-12-06 02:32:55 +00:00
parent 44c38ddaf9
commit ba315ed7d4
1 changed files with 48 additions and 36 deletions

View File

@ -23,7 +23,7 @@
Author : $Author: tomas $ Author : $Author: tomas $
Version : $Revision: 1.5 $ Version : $Revision: 1.6 $
Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/xrLocStor.php,v $ Location : $Source: /home/paul/cvs2svn-livesupport/newcvsrepo/livesupport/modules/storageServer/var/xmlrpc/xrLocStor.php,v $
------------------------------------------------------------------------------*/ ------------------------------------------------------------------------------*/
@ -48,15 +48,14 @@ ini_set("error_append_string", "</string></value>
</methodResponse>"); </methodResponse>");
header("Content-type: text/xml"); header("Content-type: text/xml");
include_once "xmlrpc.inc"; require_once "XML/RPC/Server.php";
include_once "xmlrpcs.inc";
require_once '../conf.php'; require_once '../conf.php';
require_once 'DB.php'; require_once 'DB.php';
require_once '../LocStor.php'; require_once '../LocStor.php';
function errHndl($errno, $errmsg, $filename, $linenum, $vars){ function errHndl($errno, $errmsg, $filename, $linenum, $vars){
if($errno == 8 /*E_NOTICE*/) return; if($errno == 8 /*E_NOTICE*/) return;
$xr =& new xmlrpcresp(0, 805, $xr =& new XML_RPC_Response(0, 805,
"ERROR:xrLoctor: $errno $errmsg ($filename:$linenum)"); "ERROR:xrLoctor: $errno $errmsg ($filename:$linenum)");
header("Content-type: text/xml"); header("Content-type: text/xml");
echo $xr->serialize(); echo $xr->serialize();
@ -85,13 +84,13 @@ class XR_LocStor extends LocStor{
if($struct) $r[$k]=$this->_v2xr($v); if($struct) $r[$k]=$this->_v2xr($v);
else $r[]=$this->_v2xr($v); else $r[]=$this->_v2xr($v);
} }
return new xmlrpcval($r, ($struct ? "struct" : "array")); return new XML_RPC_Value($r, ($struct ? "struct" : "array"));
}else if(is_int($var)){ }else if(is_int($var)){
return new xmlrpcval($var, "int"); return new XML_RPC_Value($var, "int");
}else if(is_bool($var)){ }else if(is_bool($var)){
return new xmlrpcval($var, "boolean"); return new XML_RPC_Value($var, "boolean");
}else{ }else{
return new xmlrpcval($var, "string"); return new XML_RPC_Value($var, "string");
} }
} }
/** /**
@ -108,7 +107,7 @@ class XR_LocStor extends LocStor{
while(list($k,$v) = $p->structeach()){ $r[$k] = $v->scalarval(); } while(list($k,$v) = $p->structeach()){ $r[$k] = $v->scalarval(); }
return array(TRUE, $r); return array(TRUE, $r);
} }
else return array(FALSE, new xmlrpcresp(0, 801, else return array(FALSE, new XML_RPC_Response(0, 801,
"wrong 1st parameter, struct expected." "wrong 1st parameter, struct expected."
)); ));
} }
@ -124,7 +123,7 @@ class XR_LocStor extends LocStor{
{ {
list($ok, $r) = $this->_xr_getPars($input); list($ok, $r) = $this->_xr_getPars($input);
if(!$ok) return $r; if(!$ok) return $r;
return new xmlrpcresp($this->_v2xr(array( return new XML_RPC_Response($this->_v2xr(array(
'str'=>strtoupper($r['teststring']), 'str'=>strtoupper($r['teststring']),
'login'=>$this->getSessLogin($r['sessid']), 'login'=>$this->getSessLogin($r['sessid']),
'sessid'=>$r['sessid'] 'sessid'=>$r['sessid']
@ -167,10 +166,10 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->authenticate($r['login'], $r['pass']); $res = $this->authenticate($r['login'], $r['pass']);
if(PEAR::isError($res)){ if(PEAR::isError($res)){
return new xmlrpcresp(0, 804,"xr_authenticate: database error"); return new XML_RPC_Response(0, 804,"xr_authenticate: database error");
} }
$retval = ($res !== FALSE); $retval = ($res !== FALSE);
return new xmlrpcresp(new xmlrpcval($retval, "boolean")); return new XML_RPC_Response(new XML_RPC_Value($retval, "boolean"));
} }
/** /**
@ -214,14 +213,14 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->login($r['login'], $r['pass']); $res = $this->login($r['login'], $r['pass']);
if(PEAR::isError($res)){ if(PEAR::isError($res)){
return new xmlrpcresp(0, 804,"xr_login: database error"); return new XML_RPC_Response(0, 804,"xr_login: database error");
} }
if($res === FALSE) if($res === FALSE)
return new xmlrpcresp(0, 802, return new XML_RPC_Response(0, 802,
"xr_login: login failed - incorrect username or password." "xr_login: login failed - incorrect username or password."
); );
else else
return new xmlrpcresp($this->_v2xr($res, false)); return new XML_RPC_Response($this->_v2xr($res, false));
} }
/** /**
@ -260,9 +259,9 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->logout($r['sessid']); $res = $this->logout($r['sessid']);
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp($this->_v2xr('Bye', false)); return new XML_RPC_Response($this->_v2xr('Bye', false));
else else
return new xmlrpcresp(0, 803, return new XML_RPC_Response(0, 803,
"xr_logout: logout failed - not logged." "xr_logout: logout failed - not logged."
); );
} }
@ -306,11 +305,11 @@ class XR_LocStor extends LocStor{
$res = $this->existsAudioClip($r['sessid'], $r['gunid']); $res = $this->existsAudioClip($r['sessid'], $r['gunid']);
#$this->debugLog($res); #$this->debugLog($res);
if(PEAR::isError($res)) if(PEAR::isError($res))
return new xmlrpcresp(0, 805, return new XML_RPC_Response(0, 805,
"xr_existsAudioClip: ".$res->getMessage(). "xr_existsAudioClip: ".$res->getMessage().
" ".$res->getUserInfo() " ".$res->getUserInfo()
); );
return new xmlrpcresp(new xmlrpcval($res, "boolean")); return new XML_RPC_Response(new XML_RPC_Value($res, "boolean"));
} }
/** /**
@ -354,9 +353,9 @@ class XR_LocStor extends LocStor{
$r['sessid'], $r['gunid'], $r['mediaFileLP'], $r['mdataFileLP'] $r['sessid'], $r['gunid'], $r['mediaFileLP'], $r['mdataFileLP']
); );
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp(new xmlrpcval($res, "string")); return new XML_RPC_Response(new XML_RPC_Value($res, "string"));
else else
return new xmlrpcresp(0, 805, return new XML_RPC_Response(0, 805,
"xr_storeAudioClip: ".$res->getMessage(). "xr_storeAudioClip: ".$res->getMessage().
" ".$res->getUserInfo() " ".$res->getUserInfo()
); );
@ -399,9 +398,9 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->deleteAudioClip($r['sessid'], $r['gunid']); $res = $this->deleteAudioClip($r['sessid'], $r['gunid']);
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp(new xmlrpcval($res, "boolean")); return new XML_RPC_Response(new XML_RPC_Value($res, "boolean"));
else else
return new xmlrpcresp(0, 805, return new XML_RPC_Response(0, 805,
"xr_deleteAudioClip: ".$res->getMessage(). "xr_deleteAudioClip: ".$res->getMessage().
" ".$res->getUserInfo() " ".$res->getUserInfo()
); );
@ -447,9 +446,9 @@ class XR_LocStor extends LocStor{
$r['sessid'], $r['gunid'], $r['mdataFileLP'] $r['sessid'], $r['gunid'], $r['mdataFileLP']
); );
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp(new xmlrpcval($res, "boolean")); return new XML_RPC_Response(new XML_RPC_Value($res, "boolean"));
else else
return new xmlrpcresp(0, 805, return new XML_RPC_Response(0, 805,
"xr_updateAudioClip: ".$res->getMessage(). "xr_updateAudioClip: ".$res->getMessage().
" ".$res->getUserInfo() " ".$res->getUserInfo()
); );
@ -496,9 +495,9 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->searchMetadata($r['sessid'], $r['criteria']); $res = $this->searchMetadata($r['sessid'], $r['criteria']);
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp(new xmlrpcval($res, "boolean")); return new XML_RPC_Response(new XML_RPC_Value($res, "boolean"));
else else
return new xmlrpcresp(0, 803, return new XML_RPC_Response(0, 803,
"xr_searchAudioClip: ".$res->getMessage(). "xr_searchAudioClip: ".$res->getMessage().
" ".$res->getUserInfo() " ".$res->getUserInfo()
); );
@ -541,9 +540,9 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->accessRawAudioData($r['sessid'], $r['gunid']); $res = $this->accessRawAudioData($r['sessid'], $r['gunid']);
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp(new xmlrpcval($res, "string")); return new XML_RPC_Response(new XML_RPC_Value($res, "string"));
else else
return new xmlrpcresp(0, 805, return new XML_RPC_Response(0, 805,
"xr_accessRawAudioData: ".$res->getMessage(). "xr_accessRawAudioData: ".$res->getMessage().
" ".$res->getUserInfo() " ".$res->getUserInfo()
); );
@ -587,9 +586,9 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->releaseRawAudioData($r['sessid'], $r['tmpLink']); $res = $this->releaseRawAudioData($r['sessid'], $r['tmpLink']);
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp(new xmlrpcval($res, "boolean")); return new XML_RPC_Response(new XML_RPC_Value($res, "boolean"));
else else
return new xmlrpcresp(0, 805, return new XML_RPC_Response(0, 805,
"xr_releaseRawAudioData: ".$res->getMessage(). "xr_releaseRawAudioData: ".$res->getMessage().
" ".$res->getUserInfo() " ".$res->getUserInfo()
); );
@ -632,9 +631,9 @@ class XR_LocStor extends LocStor{
if(!$ok) return $r; if(!$ok) return $r;
$res = $this->getAudioClip($r['sessid'], $r['gunid']); $res = $this->getAudioClip($r['sessid'], $r['gunid']);
if(!PEAR::isError($res)) if(!PEAR::isError($res))
return new xmlrpcresp(new xmlrpcval($res, "string")); return new XML_RPC_Response(new XML_RPC_Value($res, "string"));
else else
return new xmlrpcresp(0, 805, return new XML_RPC_Response(0, 805,
"xr_getAudioClip: ".$res->getMessage()." ".$res->getUserInfo() "xr_getAudioClip: ".$res->getMessage()." ".$res->getUserInfo()
); );
} }
@ -665,10 +664,23 @@ $methods = array(
$defs = array(); $defs = array();
foreach($methods as $method=>$description){ foreach($methods as $method=>$description){
$defs["locstor.$method"] = array( $defs["locstor.$method"] = array(
"function" => array(&$locStor, "xr_$method"), # "function" => array(&$locStor, "xr_$method"),
"signature" => array(array($xmlrpcStruct, $xmlrpcStruct)), "function" => "\$GLOBALS['locStor']->xr_$method",
"signature" => array(
array($GLOBALS['XML_RPC_Struct'], $GLOBALS['XML_RPC_Struct'])
),
"docstring" => $description "docstring" => $description
); );
} }
$s=new xmlrpc_server( $defs ); $s=new XML_RPC_Server( $defs );
#$s=new XML_RPC_Server( $defs , 0 );
##var_dump($s);
#$r = $s->parseRequest();
#$r = $r[0];
#var_dump($r);
#echo ($cn = get_class($r))."\n";
#$a = get_class_methods($cn);
#var_dump($a);
#echo $r->serialize();
?> ?>