summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/common.php3
-rw-r--r--lib/jabber.php10
-rw-r--r--xmppdaemon.php19
3 files changed, 19 insertions, 13 deletions
diff --git a/lib/common.php b/lib/common.php
index 18e4ed54a..f8edfdecd 100644
--- a/lib/common.php
+++ b/lib/common.php
@@ -63,7 +63,8 @@ $config =
'port' => 5222,
'user' => 'update',
'resource' => 'uniquename',
- 'password' => 'blahblahblah'),
+ 'password' => 'blahblahblah',
+ 'host' => NULL), # only set if != server
);
$config['db'] = &PEAR::getStaticProperty('DB_DataObject','options');
diff --git a/lib/jabber.php b/lib/jabber.php
index 4f0335f91..364282a1c 100644
--- a/lib/jabber.php
+++ b/lib/jabber.php
@@ -37,7 +37,7 @@ function jabber_normalize_jid($jid) {
}
}
-function jabber_connect($resource=NULL) {
+function jabber_connect($resource=NULL, $status=NULL) {
static $conn = NULL;
if (!$conn) {
$conn = new XMPP(common_config('xmpp', 'server'),
@@ -45,7 +45,10 @@ function jabber_connect($resource=NULL) {
common_config('xmpp', 'user'),
common_config('xmpp', 'password'),
($resource) ? $resource :
- common_config('xmpp', 'resource'));
+ common_config('xmpp', 'resource'),
+ common_config('xmpp', 'host') ?
+ common_config('xmpp', 'host') :
+ common_config('xmpp', 'server'));
if (!$conn) {
return false;
@@ -55,6 +58,9 @@ function jabber_connect($resource=NULL) {
return false;
}
$conn->processUntil('session_start');
+ if ($status) {
+ $conn->presence($status);
+ }
}
return $conn;
}
diff --git a/xmppdaemon.php b/xmppdaemon.php
index 94358f7ee..4e4511259 100644
--- a/xmppdaemon.php
+++ b/xmppdaemon.php
@@ -31,23 +31,27 @@ require_once(INSTALLDIR . '/lib/jabber.php');
class XMPPDaemon {
- function XMPPDaemon() {
+ function XMPPDaemon($resource=NULL) {
static $attrs = array('server', 'port', 'user', 'password',
- 'resource');
+ 'resource', 'host');
foreach ($attrs as $attr)
{
$this->$attr = common_config('xmpp', $attr);
}
+
+ if ($resource) {
+ $this->resource = $resource;
+ }
}
function connect() {
- $this->conn = new XMPP($this->server, $this->port, $this->user,
- $this->password, $this->resource);
+ $this->conn = jabber_connect($this->resource,
+ "Send me a message to post a notice");
+ );
if (!$this->conn) {
return false;
}
- $this->conn->connect();
return !$this->conn->disconnected;
}
@@ -181,10 +185,6 @@ class XMPPDaemon {
}
}
- function handle_session(&$pl) {
- $this->conn->presence($status="Send me a message to post a notice");
- }
-
function log($level, $msg) {
common_log($level, 'XMPPDaemon('.$this->resource.'): '.$msg);
}
@@ -209,7 +209,6 @@ class XMPPDaemon {
}
$this->conn->send($out);
}
-
}
$daemon = new XMPPDaemon();