// Mark Huang <mlhuang@cs.princeton.edu>
// Copyright (C) 2005-2006 The Trustees of Princeton University
//
-// $Id: gen_php_api.py,v 1.13 2006/03/23 04:29:08 mlhuang Exp $
+// $Id: header.php,v 1.3 2006/11/10 06:31:50 mlhuang Exp $
//
//
var $calls;
var $multicall;
- function PLCAPI ($auth,
- $server = PLC_API_HOST,
- $port = 8000, # PLC_API_PORT,
- $path = PLC_API_PATH,
- $cainfo = NULL)
+ function PLCAPI($auth = NULL,
+ $server = PLC_API_HOST,
+ $port = PLC_API_PORT,
+ $path = PLC_API_PATH,
+ $cainfo = NULL)
{
$this->auth = $auth;
$this->server = $server;
$this->cainfo = $cainfo;
$this->errors = array();
$this->trace = array();
- $this->calls = array ();
+ $this->calls = array();
$this->multicall = false;
}
error_log(end($this->errors));
}
- function error ()
+ function error()
{
if (empty($this->trace)) {
return NULL;
}
}
- function trace ()
+ function trace()
{
return $this->trace;
}
function call($method, $args = NULL)
{
if ($this->multicall) {
- $this->calls[] = array ('methodName' => $method,
+ $this->calls[] = array ('methodName' => $method,
'params' => $args);
- return NULL;
+ return NULL;
} else {
- return $this->internal_call ($method, $args, 3);
+ return $this->internal_call ($method, $args, 3);
}
}
- function internal_call ($method, $args = NULL, $backtrace_level = 2)
+ function internal_call($method, $args = NULL, $backtrace_level = 2)
{
$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, 2);
if (!empty($this->cainfo)) {
curl_setopt($curl, CURLOPT_CAINFO, $this->cainfo);
- } elseif (defined('PLC_API_SSL_CRT')) {
- curl_setopt($curl, CURLOPT_CAINFO, PLC_API_SSL_CRT);
+ } elseif (defined('PLC_API_CA_SSL_CRT')) {
+ curl_setopt($curl, CURLOPT_CAINFO, PLC_API_CA_SSL_CRT);
}
$url = 'https://';
} else {
$url .= $this->server . ':' . $this->port . '/' . $this->path;
curl_setopt($curl, CURLOPT_URL, $url);
- // Marshal the XML-RPC request as a POST variable
- $request = xmlrpc_encode_request($method, $args);
+ // Marshal the XML-RPC request as a POST variable. <nil/> is an
+ // extension to the XML-RPC spec that is supported in our custom
+ // version of xmlrpc.so via the 'allow_null' output_encoding key.
+ $request = xmlrpc_encode_request($method, $args, array('allow_null' => TRUE));
curl_setopt($curl, CURLOPT_POSTFIELDS, $request);
// Construct the HTTP header
$this->multicall = true;
}
- function commit ()
+ function commit()
{
if (!empty ($this->calls)) {
$ret = array();
$ret = NULL;
}
- $this->calls = array ();
+ $this->calls = array();
$this->multicall = false;
return $ret;