diff --git a/src/common/xmpp/roster.py b/src/common/xmpp/roster.py index b90c30732f774d11bf368f5e41066b4d7c2ac5f3..33472c56b94b25a02bdb9207071567eeb39d3900 100644 --- a/src/common/xmpp/roster.py +++ b/src/common/xmpp/roster.py @@ -87,7 +87,11 @@ class Roster(PlugIn): def PresenceHandler(self,dis,pres): """ Presence tracker. Used internally for setting items' resources state in internal roster representation. """ - jid=JID(pres.getFrom()) + jid=pres.getFrom() + if not jid: + # If no from attribue, it's from server + jid=self._owner.Server + jid=JID(jid) if not self._data.has_key(jid.getStripped()): self._data[jid.getStripped()]={'name':None,'ask':None,'subscription':'none','groups':['Not in roster'],'resources':{}} if type(self._data[jid.getStripped()]['resources'])!=type(dict()): self._data[jid.getStripped()]['resources']={}