]> git.mxchange.org Git - quix0rs-gnu-social.git/blobdiff - lib/xmppmanager.php
Fix dumb mistake -- changed function names partway through writing Nickname and forgo...
[quix0rs-gnu-social.git] / lib / xmppmanager.php
index 985e7c32e45c4a5c4aba8c247126ecdd191ccece..238696664a160fa509bf2c5bf220480ce83d1f54 100644 (file)
@@ -30,12 +30,12 @@ if (!defined('STATUSNET') && !defined('LACONICA')) { exit(1); }
  * In a multi-site queuedaemon.php run, one connection will be instantiated
  * for each site being handled by the current process that has XMPP enabled.
  */
-
 class XmppManager extends IoManager
 {
     protected $site = null;
     protected $pingid = 0;
     protected $lastping = null;
+    protected $conn = null;
 
     static protected $singletons = array();
     
@@ -48,7 +48,7 @@ class XmppManager extends IoManager
     public static function get()
     {
         if (common_config('xmpp', 'enabled')) {
-            $site = common_config('site', 'server');
+            $site = StatusNet::currentSite();
             if (empty(self::$singletons[$site])) {
                 self::$singletons[$site] = new XmppManager();
             }
@@ -69,7 +69,7 @@ class XmppManager extends IoManager
 
     function __construct()
     {
-        $this->site = common_config('site', 'server');
+        $this->site = StatusNet::currentSite();
         $this->resource = common_config('xmpp', 'resource') . 'daemon';
     }
 
@@ -101,6 +101,7 @@ class XmppManager extends IoManager
         $this->conn->addEventHandler('reconnect', 'handle_reconnect', $this);
 
         $this->conn->setReconnectTimeout(600);
+        // @todo Needs i18n?
         jabber_send_presence("Send me a message to post a notice", 'available', null, 'available', 100);
 
         return !is_null($this->conn);
@@ -197,10 +198,12 @@ class XmppManager extends IoManager
                 $this->conn->processTime(0);
                 return true;
             } else {
+                common_log(LOG_ERR, __METHOD__ . ' failed: 0 bytes sent');
                 return false;
             }
         } else {
             // Can't send right now...
+            common_log(LOG_ERR, __METHOD__ . ' failed: XMPP server connection currently down');
             return false;
         }
     }
@@ -252,12 +255,12 @@ class XmppManager extends IoManager
         $from = jabber_normalize_jid($pl['from']);
 
         if ($pl['type'] != 'chat') {
-            $this->log(LOG_WARNING, "Ignoring message of type ".$pl['type']." from $from.");
+            $this->log(LOG_WARNING, "Ignoring message of type ".$pl['type']." from $from: " . $pl['xml']->toString());
             return;
         }
 
         if (mb_strlen($pl['body']) == 0) {
-            $this->log(LOG_WARNING, "Ignoring message with empty body from $from.");
+            $this->log(LOG_WARNING, "Ignoring message with empty body from $from: "  . $pl['xml']->toString());
             return;
         }
 
@@ -280,9 +283,9 @@ class XmppManager extends IoManager
         $_cur = $user;
 
         if (!$user) {
-            $this->from_site($from, 'Unknown user; go to ' .
-                             common_local_url('imsettings') .
-                             ' to add your address to your account');
+            // TRANS: %s is the URL to the StatusNet site's Instant Messaging settings.
+            $this->from_site($from, sprintf(_('Unknown user. Go to %s ' .
+                             'to add your address to your account'),common_local_url('imsettings')));
             $this->log(LOG_WARNING, 'Message from unknown user ' . $from);
             return;
         }
@@ -313,7 +316,6 @@ class XmppManager extends IoManager
         unset($pl);
     }
 
-
     function is_self($from)
     {
         return preg_match('/^'.strtolower(jabber_daemon_address()).'/', strtolower($from));
@@ -399,7 +401,11 @@ class XmppManager extends IoManager
         $content_shortened = common_shorten_links($body);
         if (Notice::contentTooLong($content_shortened)) {
           $from = jabber_normalize_jid($pl['from']);
-          $this->from_site($from, sprintf(_('Message too long - maximum is %1$d characters, you sent %2$d.'),
+          // TRANS: Response to XMPP source when it sent too long a message.
+          // TRANS: %1$d the maximum number of allowed characters (used for plural), %2$d is the sent number.
+          $this->from_site($from, sprintf(_m('Message too long. Maximum is %1$d character, you sent %2$d.',
+                                             'Message too long. Maximum is %1$d characters, you sent %2$d.',
+                                             Notice::maxContent()),
                                           Notice::maxContent(),
                                           mb_strlen($content_shortened)));
           return;
@@ -476,10 +482,10 @@ class XmppManager extends IoManager
      */
     protected function switchSite()
     {
-        if ($this->site != common_config('site', 'server')) {
+        if ($this->site != StatusNet::currentSite()) {
             common_log(LOG_DEBUG, __METHOD__ . ": switching to site $this->site");
             $this->stats('switch');
-            StatusNet::init($this->site);
+            StatusNet::switchSite($this->site);
         }
     }
 }