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');
}
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;
}

View File

@ -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);
}

View File

@ -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);
}

View File

@ -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();
}

View File

@ -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);
}