]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
handle host !
authorEvan Prodromou <evan@controlezvous.ca>
Thu, 26 Jun 2008 07:59:20 +0000 (03:59 -0400)
committerEvan Prodromou <evan@controlezvous.ca>
Thu, 26 Jun 2008 07:59:20 +0000 (03:59 -0400)
darcs-hash:20080626075920-34904-0aad06d788f8dbf3a03d17752ba49d866322594e.gz

lib/common.php
lib/jabber.php
xmppdaemon.php

index 18e4ed54afd066c1bd4f8b24c229cd488d9e3da1..f8edfdecd0c106f62798e851125695b1e47506d1 100644 (file)
@@ -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');
index 4f0335f91005c81c3c737d99c059a002ad4e4595..364282a1c34dbee1f7928b1c22763a866f5d1202 100644 (file)
@@ -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;
 }
index 94358f7eed2f9ad0402346141913327c7dd20cae..4e451125962104c4b3bdb1408ad876fdef39841e 100644 (file)
@@ -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();