separate out presence from connection, send different presence types from queuehandlers

darcs-hash:20080902012604-84dde-073a583da9b09c80e5e9a47a5eddd144fad8e87a.gz
This commit is contained in:
Evan Prodromou 2008-09-01 21:26:04 -04:00
parent c31afa795f
commit c6c3cd40f6
5 changed files with 23 additions and 12 deletions

View File

@ -40,7 +40,7 @@ function jabber_daemon_address() {
return common_config('xmpp', 'user') . '@' . common_config('xmpp', 'server'); 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; static $conn = NULL;
if (!$conn) { if (!$conn) {
$conn = new XMPPHP_XMPP(common_config('xmpp', 'host') ? $conn = new XMPPHP_XMPP(common_config('xmpp', 'host') ?
@ -68,8 +68,6 @@ function jabber_connect($resource=NULL, $status=NULL, $priority=NULL) {
return false; return false;
} }
$conn->processUntil('session_start'); $conn->processUntil('session_start');
# $conn->getRoster();
$conn->presence($presence, 'available', NULL, 'available', $priority);
} }
return $conn; return $conn;
} }
@ -149,12 +147,14 @@ function jabber_send_message($to, $body, $type='chat', $subject=NULL) {
return true; 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(); $conn = jabber_connect();
if (!$conn) { if (!$conn) {
return false; return false;
} }
$conn->presence($status, $show, $to); $conn->presence($status, $show, $to, $type, $priority);
return true; return true;
} }

View File

@ -42,8 +42,11 @@ class PublicQueueHandler extends QueueHandler {
function start() { function start() {
$this->log(LOG_INFO, "INITIALIZE"); $this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages # Low priority; we don't want to receive messages
$this->conn = jabber_connect($this->_id, NULL, -1); $this->conn = jabber_connect($this->_id);
$this->conn->addEventHandler('message', 'forward_message', $this); 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); return !is_null($this->conn);
} }

View File

@ -48,8 +48,11 @@ class XmppConfirmHandler {
function start() { function start() {
# Low priority; we don't want to receive messages # Low priority; we don't want to receive messages
$this->log(LOG_INFO, "INITIALIZE"); $this->log(LOG_INFO, "INITIALIZE");
$this->conn = jabber_connect($this->_id, NULL, -1); $this->conn = jabber_connect($this->_id);
$this->conn->addEventHandler('message', 'forward_message', $this); 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); return !is_null($this->conn);
} }

View File

@ -61,12 +61,14 @@ class XMPPDaemon {
$this->log(LOG_INFO, "Connecting to $connect_to on port $this->port"); $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) { if (!$this->conn) {
return false; return false;
} }
jabber_send_presence("Send me a message to post a notice", 'available',
NULL, 'available', 100);
return !$this->conn->isDisconnected(); return !$this->conn->isDisconnected();
} }

View File

@ -44,8 +44,11 @@ class XmppQueueHandler extends QueueHandler {
function start() { function start() {
$this->log(LOG_INFO, "INITIALIZE"); $this->log(LOG_INFO, "INITIALIZE");
# Low priority; we don't want to receive messages # Low priority; we don't want to receive messages
$this->conn = jabber_connect($this->_id, NULL, -1); $this->conn = jabber_connect($this->_id);
$this->conn->addEventHandler('message', 'forward_message', $this); 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); return !is_null($this->conn);
} }