X-Git-Url: https://git.mxchange.org/?a=blobdiff_plain;f=lib%2Fqueuemanager.php;h=487104099a9e0c5d716be87e786907b9ae0980a2;hb=5a2d7601770a13f8cdb31285f271397ecf675be1;hp=0e37ab0c530f84c363987adf881a430a06a60437;hpb=7e638cb8da4ced415014726b21f3550b0f8f441b;p=quix0rs-gnu-social.git diff --git a/lib/queuemanager.php b/lib/queuemanager.php index 0e37ab0c53..487104099a 100644 --- a/lib/queuemanager.php +++ b/lib/queuemanager.php @@ -43,6 +43,7 @@ abstract class QueueManager extends IoManager protected $handlers = array(); protected $groups = array(); protected $activeGroups = array(); + protected $ignoredTransports = array(); /** * Factory function to pull the appropriate QueueManager object @@ -180,7 +181,11 @@ abstract class QueueManager extends IoManager $object = unserialize($frame); // If it is a string, we really store a JSON object in there - if (is_string($object)) { + // except if it begins with '<', because then it is XML. + if (is_string($object) && + substr($object, 0, 1) != '<' && + !is_numeric($object)) + { $json = json_decode($object); if ($json === null) { throw new Exception('Bad frame in queue item'); @@ -229,8 +234,6 @@ abstract class QueueManager extends IoManager } else { $this->_log(LOG_ERR, "Nonexistent handler class '$class' for queue '$queue'"); } - } else { - $this->_log(LOG_ERR, "Requested handler for unkown queue '$queue'"); } return null; } @@ -253,6 +256,17 @@ abstract class QueueManager extends IoManager return array_keys($queues); } + function getIgnoredTransports() + { + return array_keys($this->ignoredTransports); + } + + function ignoreTransport($transport) + { + // key is used for uniqueness, value doesn't mean anything + $this->ignoredTransports[$transport] = true; + } + /** * Initialize the list of queue handlers for the current site. *