diff --git a/lib/common.php b/lib/common.php index 18e4ed54af..f8edfdecd0 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 4f0335f910..364282a1c3 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 94358f7eed..4e45112596 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();