dedi lib update
This commit is contained in:
parent
9dc3ba395b
commit
10bbd5383f
@ -73,10 +73,12 @@ class GbxRemote
|
||||
private function connect($host, $port)
|
||||
{
|
||||
$this->socket = @fsockopen($host, $port, $errno, $errstr, $this->timeouts['open']);
|
||||
stream_set_write_buffer($this->socket, 0);
|
||||
|
||||
if(!$this->socket)
|
||||
throw new TransportException('Cannot open socket', TransportException::NOT_INITIALIZED);
|
||||
|
||||
stream_set_write_buffer($this->socket, 0);
|
||||
|
||||
// handshake
|
||||
$header = $this->read(15);
|
||||
if($header === false)
|
||||
|
@ -13,7 +13,7 @@ if(extension_loaded('xmlrpc'))
|
||||
{
|
||||
private static $options = array(
|
||||
'encoding' => 'utf-8',
|
||||
'escaping' => 'markup',
|
||||
'escaping' => 'cdata',
|
||||
'verbosity' => 'no_white_space'
|
||||
);
|
||||
|
||||
@ -61,7 +61,7 @@ else
|
||||
*/
|
||||
static function encode($method, $args)
|
||||
{
|
||||
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName>'.$method.'</methodName><params>';
|
||||
$xml = '<?xml version="1.0" encoding="utf-8"?><methodCall><methodName><![CDATA['.$method.']]></methodName><params>';
|
||||
foreach($args as $arg)
|
||||
$xml .= '<param><value>'.self::encodeValue($arg).'</value></param>';
|
||||
$xml .= '</params></methodCall>';
|
||||
@ -77,24 +77,24 @@ else
|
||||
switch(gettype($v))
|
||||
{
|
||||
case 'boolean':
|
||||
return '<boolean>'.((int) $v).'</boolean>';
|
||||
return '<boolean><![CDATA['.((int) $v).']]></boolean>';
|
||||
case 'integer':
|
||||
return '<int>'.$v.'</int>';
|
||||
return '<int><![CDATA['.$v.']]></int>';
|
||||
case 'double':
|
||||
return '<double>'.$v.'</double>';
|
||||
return '<double><![CDATA['.$v.']]></double>';
|
||||
case 'string':
|
||||
return '<string>'.htmlspecialchars($v).'</string>';
|
||||
return '<string><![CDATA['.$v.']]></string>';
|
||||
case 'object':
|
||||
if($v instanceof Base64)
|
||||
return '<base64>'.base64_encode($v->scalar).'</base64>';
|
||||
return '<base64><![CDATA['.base64_encode($v->scalar).']]></base64>';
|
||||
if($v instanceof \DateTime)
|
||||
return '<dateTime.iso8601>'.$v->format(self::DATE_FORMAT).'</dateTime.iso8601>';
|
||||
return '<dateTime.iso8601><![CDATA['.$v->format(self::DATE_FORMAT).']]></dateTime.iso8601>';
|
||||
$v = get_object_vars($v);
|
||||
// fallthrough
|
||||
case 'array':
|
||||
$return = '';
|
||||
// pure array case
|
||||
if(array_keys($v) == range(0, count($v) - 1))
|
||||
if(array_keys($v) === range(0, count($v) - 1))
|
||||
{
|
||||
foreach($v as $item)
|
||||
$return .= '<value>'.self::encodeValue($item).'</value>';
|
||||
@ -102,7 +102,7 @@ else
|
||||
}
|
||||
// else it's a struct
|
||||
foreach($v as $name => $value)
|
||||
$return .= '<member><name>'.$name.'</name><value>'.self::encodeValue($value).'</value></member>';
|
||||
$return .= '<member><name><![CDATA['.$name.']]></name><value>'.self::encodeValue($value).'</value></member>';
|
||||
return '<struct>'.$return.'</struct>';
|
||||
}
|
||||
return '';
|
||||
|
Loading…
Reference in New Issue
Block a user