From cd92ce993310c1362894e690367ebbf4a90fb08a Mon Sep 17 00:00:00 2001
From: Yann Leboulanger <asterix@lagaule.org>
Date: Sun, 2 Jun 2013 21:02:33 +0200
Subject: [PATCH] cache jabber servers too in trnasports_cache table so that
 they are not considered as transports. Fixes #7360

---
 src/common/connection.py | 5 ++++-
 src/common/logger.py     | 7 ++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/common/connection.py b/src/common/connection.py
index 4ed55177a7..da034abc18 100644
--- a/src/common/connection.py
+++ b/src/common/connection.py
@@ -1845,11 +1845,14 @@ class Connection(CommonConnection, ConnectionHandlers):
             if 'category' in identity and identity['category'] in ('gateway',
             'headline') and 'type' in identity:
                 transport_type = identity['type']
+            if 'category' in identity and identity['category'] == 'server' and \
+            'type' in identity and identity['type'] == 'im':
+                transport_type = 'jabber' # it's a jabber server
             if 'category' in identity and identity['category'] == 'conference' \
             and 'type' in identity and identity['type'] == 'text':
                 is_muc = True
 
-        if transport_type and obj.fjid not in gajim.transport_type:
+        if transport_type != '' and obj.fjid not in gajim.transport_type:
             gajim.transport_type[obj.fjid] = transport_type
             gajim.logger.save_transport_type(obj.fjid, transport_type)
 
diff --git a/src/common/logger.py b/src/common/logger.py
index e1171a9243..0f13210909 100644
--- a/src/common/logger.py
+++ b/src/common/logger.py
@@ -92,7 +92,8 @@ class Constants:
                 self.TYPE_RSS,
                 self.TYPE_WEATHER,
                 self.TYPE_MRIM,
-        ) = range(14)
+                self.TYPE_NO_TRANSPORT,
+        ) = range(15)
 
         (
                 self.SUBSCRIPTION_NONE,
@@ -339,6 +340,8 @@ class Logger:
             return constants.TYPE_WEATHER
         if type_ == 'mrim':
             return constants.TYPE_MRIM
+        if type_ == 'jabber':
+            return constants.TYPE_NO_TRANSPORT
         return None
 
     def convert_api_values_to_human_transport_type(self, type_id):
@@ -373,6 +376,8 @@ class Logger:
             return 'weather'
         if type_id == constants.TYPE_MRIM:
             return 'mrim'
+        if type_id == constants.TYPE_NO_TRANSPORT:
+            return 'jabber'
 
     def convert_human_subscription_values_to_db_api_values(self, sub):
         """
-- 
GitLab