// Mark Huang <mlhuang@cs.princeton.edu>
// Copyright (C) 2005-2006 The Trustees of Princeton University
//
-// $Id: header.php,v 1.1 2006/10/25 20:32:44 mlhuang Exp $
+// $Id$
//
//
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
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
// Set some miscellaneous options
- curl_setopt($curl, CURLOPT_TIMEOUT, 30);
+ curl_setopt($curl, CURLOPT_TIMEOUT, 180);
// Get the output of the request
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
$this->error_log('Fault Code ' . $result['faultCode'] . ': ' .
$result['faultString'], 1, true);
$ret[] = NULL;
+ // Thierry - march 30 2007
+ // using $adm->error() is broken with begin/commit style
+ // this is because error() uses last item in trace and checks for ['errors']
+ // when using begin/commit we do run internal_call BUT internal_call checks for
+ // multicall's result globally, not individual results, so ['errors'] comes empty
+ // I considered hacking internal_call
+ // to *NOT* maintain this->trace at all when invoked with multicall
+ // but it is too complex to get all values right
+ // so let's go for the hacky way, and just record individual errors at the right place
+ $this->trace[count($this->trace)-1]['errors'][] = end($this->errors);
} else {
$ret[] = $result[0];
}