]> git.mxchange.org Git - quix0rs-gnu-social.git/commitdiff
set the reconnect timeout
authorEvan Prodromou <evan@prodromou.name>
Tue, 2 Sep 2008 17:17:40 +0000 (13:17 -0400)
committerEvan Prodromou <evan@prodromou.name>
Tue, 2 Sep 2008 17:17:40 +0000 (13:17 -0400)
darcs-hash:20080902171740-84dde-ee629f4b5dbcf712cd350c37d0f1814ca1b7f237.gz

extlib/XMPPHP/XMLStream.php
scripts/publicqueuehandler.php
scripts/xmppconfirmhandler.php
scripts/xmppdaemon.php
scripts/xmppqueuehandler.php

index e59e95902cc9ac12dbc665476621e492d7d73f7e..b27811407913a8379128428e6658c40d751cc762 100644 (file)
@@ -153,6 +153,10 @@ class XMPPHP_XMLStream {
         * @var boolean
         */
        protected $use_ssl = false;
+       /**
+        * @var integer
+        */
+       protected $reconnect = 30;
 
        /**
         * Constructor
@@ -274,6 +278,8 @@ class XMPPHP_XMLStream {
                        if(!$this->socket) {
                                $this->log->log("Could not connect.",  XMPPHP_Log::LEVEL_ERROR);
                                $this->disconnected = true;
+                               # Take it easy for a few seconds
+                               sleep(min($timeout, 5));
                        }
                } while (!$this->socket && (time() - $starttime) < $timeout);
                
@@ -290,13 +296,17 @@ class XMPPHP_XMLStream {
         */
        public function doReconnect() {
                if(!$this->is_server) {
-                       $this->log->log("Reconnecting...",  XMPPHP_Log::LEVEL_WARNING);
-                       $this->connect(30, false, false);
+                       $this->log->log("Reconnecting ($this->reconnect)...",  XMPPHP_Log::LEVEL_WARNING);
+                       $this->connect($this->reconnect, false, false);
                        $this->reset();
                        $this->event('reconnect');
                }
        }
 
+       public function reconnectTimeout($timeout) {
+               $this->reconnect = $timeout;
+       }
+       
        /**
         * Disconnect from XMPP Host
         */
index 49e5f5b8f50a705cd20b6986ac429c4973f66106..366c1e5c394e71342f0b6e424be194ee159c6a8a 100755 (executable)
@@ -47,6 +47,7 @@ class PublicQueueHandler extends QueueHandler {
                if ($this->conn) {
                        $this->conn->addEventHandler('message', 'forward_message', $this);
                        $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
+                       $this->conn->reconnectTimeout(600);
                        jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
                }
                return !is_null($this->conn);
index 6cb44ce09711d647d1e23ebcda2388aa1d8dbb94..3b69d8e8fbb48f8dfefeadb499102df67fdfc472 100755 (executable)
@@ -52,6 +52,7 @@ class XmppConfirmHandler {
                if ($this->conn) {
                        $this->conn->addEventHandler('message', 'forward_message', $this);
                        $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
+                       $this->conn->reconnectTimeout(600);
                        jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);
                }
                return !is_null($this->conn);
index 2372a17e6d9883c8e72926ca33c080136b4a066b..3e866761c332e5dffb8e4303a9f140f7f05f665f 100755 (executable)
@@ -66,7 +66,9 @@ class XMPPDaemon {
                if (!$this->conn) {
                        return false;
                }
-
+               
+               $this->conn->reconnectTimeout(600);
+               
                jabber_send_presence("Send me a message to post a notice", 'available',
                                                         NULL, 'available', 100);
                return !$this->conn->isDisconnected();
index c2c7a65023cd5ca7a0c13acc31796e1f0e230751..80fb533810dc543edfb67c9bb82096c93f00c009 100755 (executable)
@@ -46,6 +46,7 @@ class XmppQueueHandler extends QueueHandler {
                # Low priority; we don't want to receive messages
                $this->conn = jabber_connect($this->_id);
                if ($this->conn) {
+                       $this->conn->reconnectTimeout(600);
                        $this->conn->addEventHandler('message', 'forward_message', $this);
                        $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
                        jabber_send_presence("Send me a message to post an notice", 'available', NULL, 'available', -1);