From c6c3cd40f6304b49f5d4841e9999641a183e987b Mon Sep 17 00:00:00 2001 From: Evan Prodromou Date: Mon, 1 Sep 2008 21:26:04 -0400 Subject: [PATCH] separate out presence from connection, send different presence types from queuehandlers darcs-hash:20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz --- lib/jabber.php | 10 +++++----- scripts/publicqueuehandler.php | 7 +++++-- scripts/xmppconfirmhandler.php | 7 +++++-- scripts/xmppdaemon.php | 4 +++- scripts/xmppqueuehandler.php | 7 +++++-- 5 files changed, 23 insertions(+), 12 deletions(-) diff --git a/lib/jabber.php b/lib/jabber.php index 22e2d11b31..3e74cbbb82 100644 --- a/lib/jabber.php +++ b/lib/jabber.php @@ -40,7 +40,7 @@ function jabber_daemon_address() { return common_config('xmpp', 'user') . '@' . common_config('xmpp', 'server'); } -function jabber_connect($resource=NULL, $status=NULL, $priority=NULL) { +function jabber_connect($resource=NULL) { static $conn = NULL; if (!$conn) { $conn = new XMPPHP_XMPP(common_config('xmpp', 'host') ? @@ -68,8 +68,6 @@ function jabber_connect($resource=NULL, $status=NULL, $priority=NULL) { return false; } $conn->processUntil('session_start'); -# $conn->getRoster(); - $conn->presence($presence, 'available', NULL, 'available', $priority); } return $conn; } @@ -149,12 +147,14 @@ function jabber_send_message($to, $body, $type='chat', $subject=NULL) { return true; } -function jabber_send_presence($status, $show='available', $to=Null) { +function jabber_send_presence($status, $show='available', $to=NULL, + $type = 'available', $priority=NULL) +{ $conn = jabber_connect(); if (!$conn) { return false; } - $conn->presence($status, $show, $to); + $conn->presence($status, $show, $to, $type, $priority); return true; } diff --git a/scripts/publicqueuehandler.php b/scripts/publicqueuehandler.php index bbb95f1fce..4ebe8187a2 100755 --- a/scripts/publicqueuehandler.php +++ b/scripts/publicqueuehandler.php @@ -42,8 +42,11 @@ 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, NULL, -1); - $this->conn->addEventHandler('message', 'forward_message', $this); + $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", 'dnd', NULL, 'available', -1); + } return !is_null($this->conn); } diff --git a/scripts/xmppconfirmhandler.php b/scripts/xmppconfirmhandler.php index ff166485d6..1a1c550013 100755 --- a/scripts/xmppconfirmhandler.php +++ b/scripts/xmppconfirmhandler.php @@ -48,8 +48,11 @@ class XmppConfirmHandler { function start() { # Low priority; we don't want to receive messages $this->log(LOG_INFO, "INITIALIZE"); - $this->conn = jabber_connect($this->_id, NULL, -1); - $this->conn->addEventHandler('message', 'forward_message', $this); + $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", 'dnd', NULL, 'available', -1); + } return !is_null($this->conn); } diff --git a/scripts/xmppdaemon.php b/scripts/xmppdaemon.php index 37d638b02c..03cadee7cb 100755 --- a/scripts/xmppdaemon.php +++ b/scripts/xmppdaemon.php @@ -61,12 +61,14 @@ class XMPPDaemon { $this->log(LOG_INFO, "Connecting to $connect_to on port $this->port"); - $this->conn = jabber_connect($this->resource, "Send me a message to post a notice", 100); + $this->conn = jabber_connect($this->resource); if (!$this->conn) { return false; } + jabber_send_presence("Send me a message to post a notice", 'available', + NULL, 'available', 100); return !$this->conn->isDisconnected(); } diff --git a/scripts/xmppqueuehandler.php b/scripts/xmppqueuehandler.php index 8e86fe9bb1..0b62670bc0 100755 --- a/scripts/xmppqueuehandler.php +++ b/scripts/xmppqueuehandler.php @@ -44,8 +44,11 @@ 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, NULL, -1); - $this->conn->addEventHandler('message', 'forward_message', $this); + $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", 'dnd', NULL, 'available', -1); + } return !is_null($this->conn); }