quick frontends (contact list): ignore roster entities with a resource:
cache uses bare entities, as a result when a jid with a resource is used in roster, it is not handled properly. As this case is rare and probably resulting from bugs in clients, entities with resources are ignored and a warning is logged when this happens. fix 306
This commit is contained in:
parent
ad40509c89
commit
1250f1a8ac
1 changed files with 9 additions and 2 deletions
|
|
@ -22,14 +22,13 @@
|
|||
|
||||
from sat.core.i18n import _
|
||||
from sat.core.log import getLogger
|
||||
|
||||
log = getLogger(__name__)
|
||||
from sat.core import exceptions
|
||||
from sat_frontends.quick_frontend.quick_widgets import QuickWidget
|
||||
from sat_frontends.quick_frontend.constants import Const as C
|
||||
from sat_frontends.tools import jid
|
||||
from collections import OrderedDict
|
||||
|
||||
log = getLogger(__name__)
|
||||
|
||||
try:
|
||||
# FIXME: to be removed when an acceptable solution is here
|
||||
|
|
@ -234,6 +233,14 @@ class ProfileContactList(object):
|
|||
@param contacts(tuple): all contacts
|
||||
"""
|
||||
for contact in contacts:
|
||||
entity = jid.JID(contact[0])
|
||||
if entity.resource:
|
||||
# we use entity's bare jid to cache data, so a resource here
|
||||
# will cause troubles
|
||||
log.warning(
|
||||
"Roster entities with resources are not managed, ignoring {entity}"
|
||||
.format(entity=entity))
|
||||
continue
|
||||
self.host.newContactHandler(*contact, profile=self.profile)
|
||||
handler._contactsFilled(self.profile)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue