changeset 1a1ad2852ed3 in /home/hg/repos/gajim
details:http://hg.gajim.org/gajim?cmd=changeset;node=1a1ad2852ed3 description: sm modifications
diffstat:
src/common/xmpp/auth_nb.py | 1 + src/common/xmpp/smacks.py | 9 ++++++--- 2 files changed, 7 insertions(+), 3 deletions(-)
diffs (52 lines):
diff -r 24ee3d2a67b2 -r 1a1ad2852ed3 src/common/xmpp/auth_nb.py --- a/src/common/xmpp/auth_nb.py Sat Feb 23 11:41:36 2013 -0400 +++ b/src/common/xmpp/auth_nb.py Sun Mar 10 22:43:37 2013 +0100 @@ -682,6 +682,7 @@ sm = self._owner._caller.sm if self.supports_sm: # starts negociation + sm.supports_sm = True sm.set_owner(self._owner) sm.negociate() self._owner.Dispatcher.sm = sm diff -r 24ee3d2a67b2 -r 1a1ad2852ed3 src/common/xmpp/smacks.py --- a/src/common/xmpp/smacks.py Sat Feb 23 11:41:36 2013 -0400 +++ b/src/common/xmpp/smacks.py Sun Mar 10 22:43:37 2013 +0100 @@ -25,10 +25,11 @@ self.resuming = False self.enabled = False # If SM is enabled self.location = None + self.failed_resume = False # If last resuming attempt failed + self.supports_sm = False # If server supports sm
def set_owner(self, owner): self._owner = owner - # Register handlers owner.Dispatcher.RegisterNamespace(NS_STREAM_MGMT) owner.Dispatcher.RegisterHandler('enabled', self._neg_response, @@ -47,13 +48,14 @@ if r == 'true' or r == 'True' or r == '1': self.resumption = True self.session_id = stanza.getAttr('id') - if r == 'false' or r == 'False' or r == '0': self.negociate(False) - l = stanza.getAttr('location') if l: self.location = l + if self.failed_resume: + self.con._discover_server_at_connection(self.con.connection) + self.failed_resume = False
def negociate(self, resume=True): # Every time we attempt to negociate, we must erase all previous info @@ -119,6 +121,7 @@ # we need to bind a resource self._owner.NonBlockingBind.resuming = False self._owner._on_auth_bind(None) + self.failed_resume = True return
# Doesn't support resumption