git://git.onelab.eu
/
plcapi.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
2e3b2ac
)
Fix: reset debug and error messages between server execution calls
author
gggeek
<giunta.gaetano@gmail.com>
Sat, 30 May 2015 10:09:55 +0000
(12:09 +0200)
committer
gggeek
<giunta.gaetano@gmail.com>
Sat, 30 May 2015 10:09:55 +0000
(12:09 +0200)
src/Server.php
patch
|
blob
|
history
diff --git
a/src/Server.php
b/src/Server.php
index
089efdf
..
96aac17
100644
(file)
--- a/
src/Server.php
+++ b/
src/Server.php
@@
-179,7
+179,9
@@
class Server
* @param string $data the request body. If null, the http POST request will be examined
* @param bool $returnPayload When true, return the response but do not echo it or any http header
*
* @param string $data the request body. If null, the http POST request will be examined
* @param bool $returnPayload When true, return the response but do not echo it or any http header
*
- * @return Response the response object (usually not used by caller...)
+ * @return Response|string the response object (usually not used by caller...) or its xml serialization
+ *
+ * @throws \Exception in case the executed method does throw an exception (and depending on server configuration)
*/
public function service($data = null, $returnPayload = false)
{
*/
public function service($data = null, $returnPayload = false)
{
@@
-191,13
+193,14
@@
class Server
// reset internal debug info
$this->debug_info = '';
// reset internal debug info
$this->debug_info = '';
- //
Echo back
what we received, before parsing it
+ //
Save
what we received, before parsing it
if ($this->debug > 1) {
$this->debugmsg("+++GOT+++\n" . $data . "\n+++END+++");
}
$r = $this->parseRequestHeaders($data, $reqCharset, $respCharset, $respEncoding);
if (!$r) {
if ($this->debug > 1) {
$this->debugmsg("+++GOT+++\n" . $data . "\n+++END+++");
}
$r = $this->parseRequestHeaders($data, $reqCharset, $respCharset, $respEncoding);
if (!$r) {
+ // this actually executes the request
$r = $this->parseRequest($data, $reqCharset);
}
$r = $this->parseRequest($data, $reqCharset);
}
@@
-446,6
+449,8
@@
class Server
* @param string $reqEncoding (optional) the charset encoding of the xml request
*
* @return Response
* @param string $reqEncoding (optional) the charset encoding of the xml request
*
* @return Response
+ *
+ * @throws \Exception in case the executed method does throw an exception (and depending on server configuration)
*/
public function parseRequest($data, $reqEncoding = '')
{
*/
public function parseRequest($data, $reqEncoding = '')
{
@@
-545,10
+550,13
@@
class Server
*
* @return Response
*
*
* @return Response
*
- * @throws \Exception in case the executed method does throw an exception (and depending on )
+ * @throws \Exception in case the executed method does throw an exception (and depending on
server configuration
)
*/
protected function execute($req, $params = null, $paramTypes = null)
{
*/
protected function execute($req, $params = null, $paramTypes = null)
{
+ static::$_xmlrpcs_occurred_errors = '';
+ static::$_xmlrpc_debuginfo = '';
+
if (is_object($req)) {
$methName = $req->method();
} else {
if (is_object($req)) {
$methName = $req->method();
} else {
@@
-603,7
+611,6
@@
class Server
// verify that function to be invoked is in fact callable
if (!is_callable($func)) {
error_log("XML-RPC: " . __METHOD__ . ": function '$funcName' registered as method handler is not callable");
// verify that function to be invoked is in fact callable
if (!is_callable($func)) {
error_log("XML-RPC: " . __METHOD__ . ": function '$funcName' registered as method handler is not callable");
-
return new Response(
0,
PhpXmlRpc::$xmlrpcerr['server_error'],
return new Response(
0,
PhpXmlRpc::$xmlrpcerr['server_error'],
@@
-616,6
+623,7
@@
class Server
if ($this->debug > 2) {
self::$_xmlrpcs_prev_ehandler = set_error_handler(array('\PhpXmlRpc\Server', '_xmlrpcs_errorHandler'));
}
if ($this->debug > 2) {
self::$_xmlrpcs_prev_ehandler = set_error_handler(array('\PhpXmlRpc\Server', '_xmlrpcs_errorHandler'));
}
+
try {
// Allow mixed-convention servers
if (is_object($req)) {
try {
// Allow mixed-convention servers
if (is_object($req)) {