diff options
author | Lance Stout <lancestout@gmail.com> | 2012-07-19 23:54:18 -0700 |
---|---|---|
committer | Lance Stout <lancestout@gmail.com> | 2012-07-19 23:54:18 -0700 |
commit | 917faecdcbf07b63173b34b708cff5bdf6476d25 (patch) | |
tree | 3a456b4ffa3de085fbad0312eaf27d4147af29eb /sleekxmpp/roster/single.py | |
parent | f6edaa56a6e91f7104cd63e5d48b39d4ca7e09f2 (diff) | |
download | slixmpp-917faecdcbf07b63173b34b708cff5bdf6476d25.tar.gz slixmpp-917faecdcbf07b63173b34b708cff5bdf6476d25.tar.bz2 slixmpp-917faecdcbf07b63173b34b708cff5bdf6476d25.tar.xz slixmpp-917faecdcbf07b63173b34b708cff5bdf6476d25.zip |
Fix issue of roster data being split across multiple rosters.
Resolved by always normalizing JIDs to bare form, regardless of if they
are JID objects or strings.
Also simplified related code to prefer use of JID objects instead of
strings so they don't need to be parsed multiple times.
Diffstat (limited to 'sleekxmpp/roster/single.py')
-rw-r--r-- | sleekxmpp/roster/single.py | 14 |
1 files changed, 10 insertions, 4 deletions
diff --git a/sleekxmpp/roster/single.py b/sleekxmpp/roster/single.py index f8c9c781..f080ae8a 100644 --- a/sleekxmpp/roster/single.py +++ b/sleekxmpp/roster/single.py @@ -89,8 +89,11 @@ class RosterNode(object): A new item entry will be created if one does not already exist. """ - if isinstance(key, JID): - key = key.bare + if key is None: + key = JID('') + if not isinstance(key, JID): + key = JID(key) + key = key.bare if key not in self._jids: self.add(key, save=True) return self._jids[key] @@ -101,8 +104,11 @@ class RosterNode(object): To remove an item from the server, use the remove() method. """ - if isinstance(key, JID): - key = key.bare + if key is None: + key = JID('') + if not isinstance(key, JID): + key = JID(key) + key = key.bare if key in self._jids: del self._jids[key] |