diff options
| author | Stig Bakken <ssb@php.net> | 2002-04-28 07:34:46 +0000 |
|---|---|---|
| committer | Stig Bakken <ssb@php.net> | 2002-04-28 07:34:46 +0000 |
| commit | e08fb72a0c82c8fad829c175a9047769a1019cda (patch) | |
| tree | e639bbe248ec979c365f44b63026914bd8ba05fd /pear | |
| parent | 80f9fdf3c7ec82db138776e72f750e04b718f83a (diff) | |
| download | php-git-e08fb72a0c82c8fad829c175a9047769a1019cda.tar.gz | |
* implemented stub for XML_RPC fallback if xmlrpc-epi is not installed
Diffstat (limited to 'pear')
| -rw-r--r-- | pear/PEAR/Remote.php | 41 |
1 files changed, 39 insertions, 2 deletions
diff --git a/pear/PEAR/Remote.php b/pear/PEAR/Remote.php index 4b8bd7bdef..51d2e75c1c 100644 --- a/pear/PEAR/Remote.php +++ b/pear/PEAR/Remote.php @@ -47,9 +47,46 @@ class PEAR_Remote extends PEAR function call($method) { - if (!extension_loaded("xmlrpc")) { - return $this->raiseError("xmlrpc support not loaded"); + if (extension_loaded("xmlrpc")) { + $args = func_get_args(); + return call_user_func_array(array(&$this, 'call_epi'), $args); } + if (!include_once("XML/RPC.php")) { + return $this->raiseError("XML_RPC package not installed"); + } + return $this->raiseError("XML_RPC fallback not yet implemented"); + } + + // }}} + + // {{{ call_epi(method, [args...]) + + function call_epi($method) + { + do { + if (extension_loaded("xmlrpc")) { + break; + } + if (OS_WINDOWS) { + $ext = 'dll'; + } elseif (PHP_OS == 'HP-UX') { + $ext = 'sl'; + } elseif (PHP_OS == 'AIX') { + $ext = 'a'; + } else { + $ext = 'so'; + } + $ext = OS_WINDOWS ? 'dll' : 'so'; + @dl("xmlrpc-epi.$ext"); + if (extension_loaded("xmlrpc")) { + break; + } + @dl("xmlrpc.$ext"); + if (extension_loaded("xmlrpc")) { + break; + } + return $this->raiseError("xmlrpc extension not loaded"); + } while (false); $params = func_get_args(); array_shift($params); $method = str_replace("_", ".", $method); |
