summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEvan Prodromou <evan@prodromou.name>2008-09-02 12:53:19 -0400
committerEvan Prodromou <evan@prodromou.name>2008-09-02 12:53:19 -0400
commit7abcee54ea9d4ca71bf8422fd88b87a45e465843 (patch)
tree2597c689672c716465e9e007ca95f3dca7b562c2
parent695da8311a68cad52f859f6b89b66b82ae6ff26c (diff)
add reconnect handlers to main XMPP-handling scripts
darcs-hash:20080902165319-84dde-b6cc255f014e6c5c059905c37c258a6c7a53b39a.gz
-rwxr-xr-xscripts/publicqueuehandler.php12
-rwxr-xr-xscripts/xmppconfirmhandler.php12
-rwxr-xr-xscripts/xmppdaemon.php6
-rwxr-xr-xscripts/xmppqueuehandler.php12
4 files changed, 27 insertions, 15 deletions
diff --git a/scripts/publicqueuehandler.php b/scripts/publicqueuehandler.php
index 555298f6a..b482d029a 100755
--- a/scripts/publicqueuehandler.php
+++ b/scripts/publicqueuehandler.php
@@ -42,14 +42,16 @@ class PublicQueueHandler extends QueueHandler {
function start() {
$this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages
- $this->conn = jabber_connect($this->_id);
- if ($this->conn) {
- $this->conn->addEventHandler('message', 'forward_message', $this);
- jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
- }
+ $this->conn = jabber_connect($this->_id, NULL, -1);
+ $this->conn->addEventHandler('message', 'forward_message', $this);
return !is_null($this->conn);
}
+ function handle_reconnect(&$pl) {
+ $this->conn->processUntil('session_start');
+ $this->conn->presence(NULL, 'available', NULL, 'available', -1);
+ }
+
function handle_notice($notice) {
return jabber_public_notice($notice);
}
diff --git a/scripts/xmppconfirmhandler.php b/scripts/xmppconfirmhandler.php
index 7971198b1..c63498f55 100755
--- a/scripts/xmppconfirmhandler.php
+++ b/scripts/xmppconfirmhandler.php
@@ -48,14 +48,16 @@ class XmppConfirmHandler {
function start() {
# Low priority; we don't want to receive messages
$this->log(LOG_INFO, "INITIALIZE");
- $this->conn = jabber_connect($this->_id);
- if ($this->conn) {
- $this->conn->addEventHandler('message', 'forward_message', $this);
- jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
- }
+ $this->conn = jabber_connect($this->_id, NULL, -1);
+ $this->conn->addEventHandler('message', 'forward_message', $this);
return !is_null($this->conn);
}
+ function handle_reconnect(&$pl) {
+ $this->conn->processUntil('session_start');
+ $this->conn->presence(NULL, 'available', NULL, 'available', -1);
+ }
+
function handle_queue() {
$this->log(LOG_INFO, 'checking for queued confirmations');
do {
diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php
index 03cadee7c..2372a17e6 100755
--- a/scripts/xmppdaemon.php
+++ b/scripts/xmppdaemon.php
@@ -75,10 +75,16 @@ class XMPPDaemon {
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 handle_reconnect(&$pl) {
+ $this->conn->processUntil('session_start');
+ $this->conn->presence('Send me a message to post a notice', 'available', NULL, 'available', 100);
+ }
+
function get_user($from) {
$user = User::staticGet('jabber', jabber_normalize_jid($from));
return $user;
diff --git a/scripts/xmppqueuehandler.php b/scripts/xmppqueuehandler.php
index 7f1e6c28f..49d3df0f5 100755
--- a/scripts/xmppqueuehandler.php
+++ b/scripts/xmppqueuehandler.php
@@ -44,14 +44,16 @@ class XmppQueueHandler extends QueueHandler {
function start() {
$this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages
- $this->conn = jabber_connect($this->_id);
- if ($this->conn) {
- $this->conn->addEventHandler('message', 'forward_message', $this);
- jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
- }
+ $this->conn = jabber_connect($this->_id, NULL, -1);
+ $this->conn->addEventHandler('message', 'forward_message', $this);
return !is_null($this->conn);
}
+ function handle_reconnect(&$pl) {
+ $this->conn->processUntil('session_start');
+ $this->conn->presence(NULL, 'available', NULL, 'available', -1);
+ }
+
function handle_notice($notice) {
return jabber_broadcast_notice($notice);
}