From 0cb39b32a4ee3a2f86f6db6d2354836bcf68a33e Mon Sep 17 00:00:00 2001
From: mathieui <mathieui@mathieui.net>
Date: Wed, 1 Aug 2012 20:10:00 +0200
Subject: Do not generate invalid jids (e.g. localpart@domainpart/)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This is in prevision of a sleekxmpp update with JID validation.
Also, comment the “server” option in the config file a bit better.
---
 data/default_config.cfg | 3 ++-
 src/connection.py       | 4 +++-
 src/contact.py          | 6 ++++--
 3 files changed, 9 insertions(+), 4 deletions(-)

diff --git a/data/default_config.cfg b/data/default_config.cfg
index 8871de15..ff73ecc4 100644
--- a/data/default_config.cfg
+++ b/data/default_config.cfg
@@ -4,7 +4,8 @@
 
 [Poezio]
 
-# the server. Make sure the server you're using accepts anonymous authentification
+# The server used for anonymous connection.
+# Make sure the server you're using accepts anonymous authentication
 server = anon.louiz.org
 
 # SSL Certificate fingerprint
diff --git a/src/connection.py b/src/connection.py
index 80c41ee8..f4db0816 100644
--- a/src/connection.py
+++ b/src/connection.py
@@ -34,7 +34,9 @@ class Connection(sleekxmpp.ClientXMPP):
             self.anon = False # Field used to know if we are anonymous or not.
             # many features will be handled diferently
             # depending on this setting
-            jid = '%s/%s' % (config.get('jid', ''), resource)
+            jid = '%s' % config.get('jid', '')
+            if resource:
+                jid = '%s/%s' (jid, resource)
             password = config.get('password', '') or getpass.getpass()
         else: # anonymous auth
             self.anon = True
diff --git a/src/contact.py b/src/contact.py
index 3a8e38ab..b8963a71 100644
--- a/src/contact.py
+++ b/src/contact.py
@@ -100,8 +100,10 @@ class Contact(object):
     @property
     def resources(self):
         """List of the available resources as Resource objects"""
-        return [Resource('%s/%s' % (self.bare_jid, key), self.__item.resources[key])
-                for key in self.__item.resources]
+        return [Resource(
+            '%s%s' % (self.bare_jid, ('/' + key) if key else ''),
+            self.__item.resources[key]
+            ) for key in self.__item.resources.keys()]
 
     @property
     def subscription(self):
-- 
cgit v1.2.3