summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/queuemanager.php22
-rw-r--r--lib/stompqueuemanager.php7
-rwxr-xr-xscripts/queuedaemon.php5
3 files changed, 24 insertions, 10 deletions
diff --git a/lib/queuemanager.php b/lib/queuemanager.php
index b98e57a1f..291174d3c 100644
--- a/lib/queuemanager.php
+++ b/lib/queuemanager.php
@@ -149,11 +149,13 @@ abstract class QueueManager extends IoManager
function initialize()
{
if (Event::handle('StartInitializeQueueManager', array($this))) {
- $this->connect('plugin', 'PluginQueueHandler');
- $this->connect('omb', 'OmbQueueHandler');
- $this->connect('ping', 'PingQueueHandler');
- if (common_config('sms', 'enabled')) {
- $this->connect('sms', 'SmsQueueHandler');
+ if (!defined('XMPP_ONLY_FLAG')) { // hack!
+ $this->connect('plugin', 'PluginQueueHandler');
+ $this->connect('omb', 'OmbQueueHandler');
+ $this->connect('ping', 'PingQueueHandler');
+ if (common_config('sms', 'enabled')) {
+ $this->connect('sms', 'SmsQueueHandler');
+ }
}
// XMPP output handlers...
@@ -165,10 +167,14 @@ abstract class QueueManager extends IoManager
$this->connect('confirm', 'XmppConfirmHandler');
}
- // For compat with old plugins not registering their own handlers.
- $this->connect('plugin', 'PluginQueueHandler');
+ if (!defined('XMPP_ONLY_FLAG')) { // hack!
+ // For compat with old plugins not registering their own handlers.
+ $this->connect('plugin', 'PluginQueueHandler');
+ }
+ }
+ if (!defined('XMPP_ONLY_FLAG')) { // hack!
+ Event::handle('EndInitializeQueueManager', array($this));
}
- Event::handle('EndInitializeQueueManager', array($this));
}
/**
diff --git a/lib/stompqueuemanager.php b/lib/stompqueuemanager.php
index a7d735d1c..00590fdb6 100644
--- a/lib/stompqueuemanager.php
+++ b/lib/stompqueuemanager.php
@@ -104,7 +104,12 @@ class StompQueueManager extends QueueManager
*/
function getQueues()
{
- return array_keys($this->handlers[common_config('site', 'server')]);
+ $site = common_config('site', 'server');
+ if (empty($this->handlers[$site])) {
+ return array();
+ } else {
+ return array_keys($this->handlers[$site]);
+ }
}
/**
diff --git a/scripts/queuedaemon.php b/scripts/queuedaemon.php
index f8bade39d..162f617e0 100755
--- a/scripts/queuedaemon.php
+++ b/scripts/queuedaemon.php
@@ -21,7 +21,7 @@
define('INSTALLDIR', realpath(dirname(__FILE__) . '/..'));
$shortoptions = 'fi:at:';
-$longoptions = array('id=', 'foreground', 'all', 'threads=', 'skip-xmpp');
+$longoptions = array('id=', 'foreground', 'all', 'threads=', 'skip-xmpp', 'xmpp-only');
/**
* Attempts to get a count of the processors available on the current system
@@ -263,6 +263,9 @@ $all = have_option('a') || have_option('--all');
if (have_option('--skip-xmpp')) {
define('XMPP_EMERGENCY_FLAG', true);
}
+if (have_option('--xmpp-only')) {
+ define('XMPP_ONLY_FLAG', true);
+}
$daemon = new QueueDaemon($id, $daemonize, $threads, $all);
$daemon->runOnce();