X-Git-Url: http://git.polytechnique.org/?a=blobdiff_plain;ds=inline;f=classes%2Fxmlrpcclient.php;h=deae598ed75f7a6d285d44cabe675119338567e5;hb=571e48acadea9f5d2e5073fd993746ec33c369d1;hp=cbcae3c7868faa31a3431c561cdfcaaf7eec6f30;hpb=5ddeb07cc787dd1dc3630a31f1528f5cc7c4d9b9;p=platal.git diff --git a/classes/xmlrpcclient.php b/classes/xmlrpcclient.php index cbcae3c..deae598 100644 --- a/classes/xmlrpcclient.php +++ b/classes/xmlrpcclient.php @@ -1,6 +1,6 @@ bt) { + $this->bt->start($method . "\n" . var_export($args, true)); + } $answer = $this->http_post($query, $this->urlparts); + if ($this->bt) { + $this->bt->stop(); + } + if (is_null($answer)) { + Platal::page()->trigError("L'accès aux listes de diffusion n'est pas disponible actuellement."); + $this->bt->update(0, "Connection failed"); + return null; + } + Platal::assert(starts_with($answer, 'HTTP/1.0 200 OK'), "HTTP Error:\n" . $answer, + "Une erreur est survenue lors de l'accès aux listes de diffusion."); $result = $this->find_and_decode_xml($answer); + if ($this->bt) { + if (is_array($result) && isset($result['faultCode'])) { + $this->bt->update(0, $result['faultString']); + } else { + $this->bt->update(count($result)); + } + } else { + Platal::assert(!is_array($result) || !isset($result['faultCode']), + "RPC Error:\n" . $answer, + "Une erreur est survenue lors de l'accès aux listes de diffusion."); + } if (is_array($result) && isset($result['faultCode'])) { trigger_error("Error in xmlrpc call $function\n". @@ -112,5 +137,5 @@ class XmlrpcClient } } -// vim:set et sw=4 sts=4 sws=4: +// vim:set et sw=4 sts=4 sws=4 enc=utf-8: ?>