Philipp Hörist pushed to branch nbxmpp_0.6 at gajim / python-nbxmpp
Commits:
318406e6 by Philipp Hörist at 2019-01-08T19:29:10Z
Raise version to 0.6.9
- - - - -
2 changed files:
- nbxmpp/__init__.py
- setup.py
Changes:
=====================================
nbxmpp/__init__.py
=====================================
@@ -17,4 +17,4 @@ from .client_nb import NonBlockingClient
from .plugin import PlugIn
from .smacks import Smacks
-__version__ = "0.6.8"
+__version__ = "0.6.9"
=====================================
setup.py
=====================================
@@ -3,7 +3,7 @@
from distutils.core import setup
setup(name='nbxmpp',
- version='0.6.8',
+ version='0.6.9',
description='Non blocking Jabber/XMPP module',
author='Yann Leboulanger',
author_email='asterix(a)lagaule.org',
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/318406e69081a22185f8e0531f…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/318406e69081a22185f8e0531f…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch nbxmpp_0.6 at gajim / python-nbxmpp
Commits:
e292e593 by Philipp Hörist at 2019-01-08T19:03:11Z
Update ChangeLog
- - - - -
1 changed file:
- ChangeLog
Changes:
=====================================
ChangeLog
=====================================
@@ -1,3 +1,8 @@
+python-nbxmpp 0.6.9 (10 January 2019)
+
+ * Always bind after SM failed Fixes #64
+ * Dont try and guess system language
+
python-nbxmpp 0.6.8 (07 October 2018)
* Reset SM counter after receiving <enabled>
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/e292e5937c51362a75c0068520…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/commit/e292e5937c51362a75c0068520…
You're receiving this email because of your account on dev.gajim.org.
Philipp Hörist pushed to branch nbxmpp_0.6 at gajim / python-nbxmpp
Commits:
a85b5376 by Philipp Hörist at 2019-01-08T18:23:49Z
Dont try to guess system language
getdefaultlocale() is not a good way for determining the users configured language
Let the client figure it out and pass it to nbxmpp
- - - - -
9f7a5212 by Philipp Hörist at 2019-01-08T18:59:00Z
Always bind after sm resume fails
- - - - -
82764c3a by Philipp Hörist at 2019-01-08T18:59:59Z
Update .gitignore
- - - - -
5 changed files:
- .gitignore
- nbxmpp/bosh.py
- nbxmpp/client_nb.py
- nbxmpp/dispatcher_nb.py
- nbxmpp/smacks.py
Changes:
=====================================
.gitignore
=====================================
@@ -1,2 +1,4 @@
build/
__pycache__/
+dist/
+nbxmpp.egg-info/
\ No newline at end of file
=====================================
nbxmpp/bosh.py
=====================================
@@ -44,10 +44,7 @@ class NonBlockingBOSH(NonBlockingTransport):
idlequeue, estabilish_tls, certs, tls_version, cipher_list)
self.bosh_sid = None
- if locale.getdefaultlocale()[0]:
- self.bosh_xml_lang = locale.getdefaultlocale()[0].split('_')[0]
- else:
- self.bosh_xml_lang = 'en'
+ self.bosh_xml_lang = self._owner.lang
self.http_version = 'HTTP/1.1'
self.http_persistent = True
=====================================
nbxmpp/client_nb.py
=====================================
@@ -37,7 +37,7 @@ class NonBlockingClient(object):
handling, whereas underlying modules take care of feature-specific logic
"""
- def __init__(self, domain, idlequeue, caller=None):
+ def __init__(self, domain, idlequeue, caller=None, lang='en'):
"""
Caches connection data
@@ -48,6 +48,7 @@ class NonBlockingClient(object):
"""
self.Namespace = protocol.NS_CLIENT
self.defaultNamespace = self.Namespace
+ self.lang = lang
self.idlequeue = idlequeue
self.disconnect_handlers = []
=====================================
nbxmpp/dispatcher_nb.py
=====================================
@@ -194,9 +194,7 @@ class XMPPDispatcher(PlugIn):
self._metastream.setAttr('version', '1.0')
self._metastream.setAttr('xmlns:stream', NS_STREAMS)
self._metastream.setAttr('to', self._owner.Server)
- if locale.getdefaultlocale()[0]:
- self._metastream.setAttr('xml:lang',
- locale.getdefaultlocale()[0].split('_')[0])
+ self._metastream.setAttr('xml:lang', self._owner.lang)
self._owner.send("%s%s>" % (XML_DECLARATION, str(self._metastream)[:-2]))
def _check_stream_start(self, ns, tag, attrs):
@@ -623,9 +621,7 @@ class BOSHDispatcher(XMPPDispatcher):
self._metastream.setAttr('version', '1.0')
self._metastream.setAttr('xmlns:stream', NS_STREAMS)
self._metastream.setAttr('to', self._owner.Server)
- if locale.getdefaultlocale()[0]:
- self._metastream.setAttr('xml:lang',
- locale.getdefaultlocale()[0].split('_')[0])
+ self._metastream.setAttr('xml:lang', self._owner.lang)
self.restart = True
self._owner.Connection.send_init(after_SASL=self.after_SASL)
=====================================
nbxmpp/smacks.py
=====================================
@@ -184,43 +184,36 @@ class Smacks(object):
self.old_uqueue = []
def error_handling(self, disp, stanza):
- # If the server doesn't recognize previd, forget about resuming
- # Ask for service discovery, etc..
- if stanza.getTag('item-not-found'):
- self.resuming = False
- self.enabled = False
- # we need to bind a resource
- self._owner.NonBlockingBind.resuming = False
- self._owner.Dispatcher.Event(NS_STREAM_MGMT, 'RESUME FAILED', None)
- self._owner._on_auth_bind(None)
- self.failed_resume = True
-
- h = stanza.getAttr('h')
- log.info('Session resumption failed (item-not-found), server h: %s' % str(h))
- if not h:
- return
- #prepare old_queue to contain only unacked stanzas for later resend (which is happening after our session is established properly)
- h = int(h)
- diff = self.out_h - h
-
- if diff < 0:
- log.error('Server and client number of stanzas handled mismatch on session resumption (our h: %d, server h: %d, #queue: %d)' % (self.out_h, h, len(self.old_uqueue)))
- self.old_uqueue = [] #that's weird, but we don't resend this stanzas if the server says we don't need to
- elif len(self.old_uqueue) < diff:
- log.error('Server and client number of stanzas handled mismatch on session resumption (our h: %d, server h: %d, #queue: %d)' % (self.out_h, h, len(self.old_uqueue)))
- else:
- log.info('Removing %d already acked stanzas from old outgoing queue (our h: %d, server h: %d, #queue: %d, remaining in queue: %d)' % (len(self.old_uqueue) - diff, self.out_h, h, len(self.old_uqueue), diff))
- while (len(self.old_uqueue) > diff):
- self.old_uqueue.pop(0)
- return
-
# Doesn't support resumption
if stanza.getTag('feature-not-implemented'):
log.info('Session resumption failed (feature-not-implemented)')
self.negociate(False)
return
- if stanza.getTag('unexpected-request'):
- log.error('Gajim failed to negociate Stream Management')
- self.enabled = False
+ # If the server doesn't recognize previd, forget about resuming
+ # Ask for service discovery, etc..
+ self.resuming = False
+ self.enabled = False
+ # we need to bind a resource
+ self._owner.NonBlockingBind.resuming = False
+ self._owner.Dispatcher.Event(NS_STREAM_MGMT, 'RESUME FAILED', None)
+ self._owner._on_auth_bind(None)
+ self.failed_resume = True
+
+ h = stanza.getAttr('h')
+ log.info('Session resumption failed, server h: %s' % str(h))
+ if not h:
return
+ #prepare old_queue to contain only unacked stanzas for later resend (which is happening after our session is established properly)
+ h = int(h)
+ diff = self.out_h - h
+
+ if diff < 0:
+ log.error('Server and client number of stanzas handled mismatch on session resumption (our h: %d, server h: %d, #queue: %d)' % (self.out_h, h, len(self.old_uqueue)))
+ self.old_uqueue = [] #that's weird, but we don't resend this stanzas if the server says we don't need to
+ elif len(self.old_uqueue) < diff:
+ log.error('Server and client number of stanzas handled mismatch on session resumption (our h: %d, server h: %d, #queue: %d)' % (self.out_h, h, len(self.old_uqueue)))
+ else:
+ log.info('Removing %d already acked stanzas from old outgoing queue (our h: %d, server h: %d, #queue: %d, remaining in queue: %d)' % (len(self.old_uqueue) - diff, self.out_h, h, len(self.old_uqueue), diff))
+ while (len(self.old_uqueue) > diff):
+ self.old_uqueue.pop(0)
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/compare/3e4c66556bb830556b16ffae0…
--
View it on GitLab: https://dev.gajim.org/gajim/python-nbxmpp/compare/3e4c66556bb830556b16ffae0…
You're receiving this email because of your account on dev.gajim.org.