diff --git a/src/common/xmpp/auth_nb.py b/src/common/xmpp/auth_nb.py index cfbc3d43c..7c89b3b73 100644 --- a/src/common/xmpp/auth_nb.py +++ b/src/common/xmpp/auth_nb.py @@ -484,15 +484,17 @@ class NonBlockingBind(PlugIn): def _on_bound(self, resp): if isResultNode(resp): - self.bound.append(resp.getTag('bind').getTagData('jid')) - log.info('Successfully bound %s.' % self.bound[-1]) - jid = JID(resp.getTag('bind').getTagData('jid')) - self._owner.User = jid.getNode() - self._owner.Resource = jid.getResource() - self._owner.SendAndWaitForResponse(Protocol('iq', typ='set', - payload=[Node('session', attrs={'xmlns':NS_SESSION})]), - func=self._on_session) - elif resp: + if resp.getTag('bind') and resp.getTag('bind').getTagData('jid'): + self.bound.append(resp.getTag('bind').getTagData('jid')) + log.info('Successfully bound %s.' % self.bound[-1]) + jid = JID(resp.getTag('bind').getTagData('jid')) + self._owner.User = jid.getNode() + self._owner.Resource = jid.getResource() + self._owner.SendAndWaitForResponse(Protocol('iq', typ='set', + payload=[Node('session', attrs={'xmlns':NS_SESSION})]), + func=self._on_session) + return + if resp: log.error('Binding failed: %s.' % resp.getTag('error')) self.on_bound(None) else: