diff options
author | Evan Prodromou <evan@prodromou.name> | 2008-09-04 14:40:31 -0400 |
---|---|---|
committer | Evan Prodromou <evan@prodromou.name> | 2008-09-04 14:40:31 -0400 |
commit | aed0fff4ea668de83405a4457fe238cf36c78d8f (patch) | |
tree | 21c3c184e49c4599bbd7e96f18225d831a56cd66 /scripts | |
parent | 95d9920d7861fb4a070a2ac2ebe19deb7432c5ab (diff) |
scripts daemonize themselves
darcs-hash:20080904184031-84dde-eba2061f3aa898d0c791ffeb70837f759778c567.gz
Diffstat (limited to 'scripts')
-rwxr-xr-x | scripts/ombqueuehandler.php | 6 | ||||
-rwxr-xr-x | scripts/publicqueuehandler.php | 6 | ||||
-rwxr-xr-x | scripts/smsqueuehandler.php | 6 | ||||
-rwxr-xr-x | scripts/xmppconfirmhandler.php | 14 | ||||
-rwxr-xr-x | scripts/xmppdaemon.php | 26 | ||||
-rwxr-xr-x | scripts/xmppqueuehandler.php | 6 |
6 files changed, 29 insertions, 35 deletions
diff --git a/scripts/ombqueuehandler.php b/scripts/ombqueuehandler.php index da089feab..1df816d14 100755 --- a/scripts/ombqueuehandler.php +++ b/scripts/ombqueuehandler.php @@ -71,8 +71,4 @@ $id = ($argc > 1) ? $argv[1] : NULL; $handler = new OmbQueueHandler($id); -if ($handler->start()) { - $handler->handle_queue(); -} - -$handler->finish(); +$handler->runOnce(); diff --git a/scripts/publicqueuehandler.php b/scripts/publicqueuehandler.php index bd0a3670e..62e60b858 100755 --- a/scripts/publicqueuehandler.php +++ b/scripts/publicqueuehandler.php @@ -105,8 +105,4 @@ $resource = ($argc > 1) ? $argv[1] : (common_config('xmpp','resource') . '-publi $handler = new PublicQueueHandler($resource); -if ($handler->start()) { - $handler->handle_queue(); -} - -$handler->finish(); +$handler->runOnce(); diff --git a/scripts/smsqueuehandler.php b/scripts/smsqueuehandler.php index 9968a7861..8f0d02d9b 100755 --- a/scripts/smsqueuehandler.php +++ b/scripts/smsqueuehandler.php @@ -61,8 +61,4 @@ $id = ($argc > 1) ? $argv[1] : NULL; $handler = new SmsQueueHandler($id); -if ($handler->start()) { - $handler->handle_queue(); -} - -$handler->finish(); +$handler->runOnce(); diff --git a/scripts/xmppconfirmhandler.php b/scripts/xmppconfirmhandler.php index e863f3e7e..3c31c5d8b 100755 --- a/scripts/xmppconfirmhandler.php +++ b/scripts/xmppconfirmhandler.php @@ -63,7 +63,10 @@ class XmppConfirmHandler { $this->conn->presence(NULL, 'available', NULL, 'available', -1); } - function handle_queue() { + function run() { + if (!$this->start()) { + return false; + } $this->log(LOG_INFO, 'checking for queued confirmations'); do { $confirm = $this->next_confirm(); @@ -99,6 +102,10 @@ class XmppConfirmHandler { $this->idle(10); } } while (true); + if (!$this->finish()) { + return false; + } + return true; } function next_confirm() { @@ -181,8 +188,5 @@ $resource = ($argc > 1) ? $argv[1] : (common_config('xmpp', 'resource').'-confir $handler = new XmppConfirmHandler($resource); -if ($handler->start()) { - $handler->handle_queue(); -} +$handler->runOnce(); -$handler->finish(); diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php index c29b14b7b..c5a53e457 100755 --- a/scripts/xmppdaemon.php +++ b/scripts/xmppdaemon.php @@ -29,6 +29,7 @@ define('LACONICA', true); require_once(INSTALLDIR . '/lib/common.php'); require_once(INSTALLDIR . '/lib/jabber.php'); +require_once(INSTALLDIR . '/lib/daemon.php'); set_error_handler('common_error_handler'); @@ -36,7 +37,7 @@ set_error_handler('common_error_handler'); # in jabber.php, which create a new XMPP class. A more elegant (?) solution # might be to use make this a subclass of XMPP. -class XMPPDaemon { +class XMPPDaemon extends Daemon { function XMPPDaemon($resource=NULL) { static $attrs = array('server', 'port', 'user', 'password', 'host'); @@ -74,12 +75,19 @@ class XMPPDaemon { return !$this->conn->isDisconnected(); } - function handle() { - $this->conn->addEventHandler('message', 'handle_message', $this); - $this->conn->addEventHandler('presence', 'handle_presence', $this); - $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this); - - $this->conn->process(); + function name() { + return strtolower('xmppdaemon.'.$this->resource); + } + + function run() { + if ($this->connect()) { + + $this->conn->addEventHandler('message', 'handle_message', $this); + $this->conn->addEventHandler('presence', 'handle_presence', $this); + $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this); + + $this->conn->process(); + } } function handle_reconnect(&$pl) { @@ -325,6 +333,4 @@ $resource = ($argc > 1) ? $argv[1] : (common_config('xmpp','resource') . '-liste $daemon = new XMPPDaemon($resource); -if ($daemon->connect()) { - $daemon->handle(); -} +$daemon->runOnce(); diff --git a/scripts/xmppqueuehandler.php b/scripts/xmppqueuehandler.php index 4394a1a40..1c594f210 100755 --- a/scripts/xmppqueuehandler.php +++ b/scripts/xmppqueuehandler.php @@ -110,8 +110,4 @@ $resource = ($argc > 1) ? $argv[1] : (common_config('xmpp','resource') . '-queue $handler = new XmppQueueHandler($resource); -if ($handler->start()) { - $handler->handle_queue(); -} - -$handler->finish(); +$handler->runOnce();
\ No newline at end of file |