Hello community,

here is the log from the commit of package python-nbxmpp for openSUSE:Leap:15.2 
checked in at 2020-02-04 17:59:56
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Leap:15.2/python-nbxmpp (Old)
 and      /work/SRC/openSUSE:Leap:15.2/.python-nbxmpp.new.26092 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "python-nbxmpp"

Tue Feb  4 17:59:56 2020 rev:24 rq:769888 version:0.6.10

Changes:
--------
--- /work/SRC/openSUSE:Leap:15.2/python-nbxmpp/python-nbxmpp.changes    
2020-01-15 15:50:45.295505446 +0100
+++ /work/SRC/openSUSE:Leap:15.2/.python-nbxmpp.new.26092/python-nbxmpp.changes 
2020-02-04 18:00:17.724962123 +0100
@@ -1,0 +2,27 @@
+Thu May 23 05:21:13 UTC 2019 - [email protected]
+
+- Update to 0.6.10:
+  * Add support for domain based name in features for GSSAPI
+  * Fix usage of BOSH
+  * Fix Jingle hash namespace
+
+-------------------------------------------------------------------
+Thu Jan 31 07:51:28 UTC 2019 - [email protected]
+
+- Update to version 0.6.9 (boo#1123247):
+  * Always bind after SM failed Fixes #64
+  * Dont try and guess system language
+
+-------------------------------------------------------------------
+Mon Nov 19 12:42:07 UTC 2018 - [email protected]
+
+- Update to version 0.6.8 (changes since 0.6.6):
+  * Raise default TLS version to 1.2.
+  * Remove DIGEST-MD5 from the default auth mechs.
+  * Add STANZA RECEIVED Event (some servers send more than one
+    stanza in one packet).
+  * Add alternative locations to load TLS certs from.
+  * Reset SM counter after receiving <enabled>.
+  * Issue event when SM resume fails.
+
+-------------------------------------------------------------------

Old:
----
  nbxmpp-0.6.6.tar.gz

New:
----
  nbxmpp-0.6.10.tar.gz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ python-nbxmpp.spec ++++++
--- /var/tmp/diff_new_pack.0hPbn8/_old  2020-02-04 18:00:18.424962546 +0100
+++ /var/tmp/diff_new_pack.0hPbn8/_new  2020-02-04 18:00:18.424962546 +0100
@@ -1,7 +1,7 @@
 #
 # spec file for package python-nbxmpp
 #
-# Copyright (c) 2018 SUSE LINUX GmbH, Nuernberg, Germany.
+# Copyright (c) 2019 SUSE LINUX GmbH, Nuernberg, Germany.
 #
 # All modifications and additions to the file contributed by third parties
 # remain the property of their copyright owners, unless otherwise agreed
@@ -19,12 +19,12 @@
 %{?!python_module:%define python_module() python-%{**} python3-%{**}}
 %define _name   nbxmpp
 Name:           python-nbxmpp
-Version:        0.6.6
+Version:        0.6.10
 Release:        0
 Summary:        XMPP library by Gajim team
 License:        GPL-3.0-or-later
 Group:          Development/Languages/Python
-URL:            https://python-nbxmpp.gajim.org/
+URL:            https://dev.gajim.org/gajim/python-nbxmpp
 Source:         
https://files.pythonhosted.org/packages/source/n/%{_name}/%{_name}-%{version}.tar.gz
 BuildRequires:  %{python_module setuptools}
 BuildRequires:  fdupes
@@ -33,8 +33,9 @@
 
 %description
 Python-nbxmpp is a Python library that provides a way for Python
-applications to use Jabber/XMPP networks in a non-blocking way. This
-library is initialy a fork of xmpppy one, but using non-blocking sockets.
+applications to use Jabber/XMPP networks in a non-blocking way.
+This library is initialy a fork of xmpppy one, but using
+non-blocking sockets.
 
 %python_subpackages
 

++++++ nbxmpp-0.6.6.tar.gz -> nbxmpp-0.6.10.tar.gz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/ChangeLog new/nbxmpp-0.6.10/ChangeLog
--- old/nbxmpp-0.6.6/ChangeLog  2018-05-19 20:52:45.000000000 +0200
+++ new/nbxmpp-0.6.10/ChangeLog 2019-02-18 20:51:20.000000000 +0100
@@ -1,3 +1,26 @@
+python-nbxmpp 0.6.10 (19 February 2019)
+
+ * Add support for domain based name in features for GSSAPI
+ * Fix usage of BOSH
+ * Fix Jingle hash namespace
+
+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>
+ * Issue event when SM resume fails
+
+python-nbxmpp 0.6.7 (19 August 2018)
+
+ * Raise default TLS version to 1.2
+ * Remove DIGEST-MD5 from the default auth mechs
+ * Add STANZA RECEIVED Event (Some servers send more than one stanza in one 
packet)
+ * Add alternative locations to load TLS certs from
+
 python-nbxmpp 0.6.6 (20 May 2018)
 
  * Record all SSL errors instead of only the first
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/PKG-INFO new/nbxmpp-0.6.10/PKG-INFO
--- old/nbxmpp-0.6.6/PKG-INFO   2018-05-19 20:56:31.000000000 +0200
+++ new/nbxmpp-0.6.10/PKG-INFO  2019-02-18 20:52:18.000000000 +0100
@@ -1,6 +1,6 @@
 Metadata-Version: 1.0
 Name: nbxmpp
-Version: 0.6.6
+Version: 0.6.10
 Summary: Non blocking Jabber/XMPP module
 Home-page: http://dev.gajim.org/gajim/python-nbxmpp
 Author: Yann Leboulanger
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/__init__.py 
new/nbxmpp-0.6.10/nbxmpp/__init__.py
--- old/nbxmpp-0.6.6/nbxmpp/__init__.py 2018-05-19 20:52:45.000000000 +0200
+++ new/nbxmpp-0.6.10/nbxmpp/__init__.py        2019-02-18 20:51:20.000000000 
+0100
@@ -17,4 +17,4 @@
 from .plugin import PlugIn
 from .smacks import Smacks
 
-__version__ = "0.6.6"
+__version__ = "0.6.10"
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/auth_nb.py 
new/nbxmpp-0.6.10/nbxmpp/auth_nb.py
--- old/nbxmpp-0.6.6/nbxmpp/auth_nb.py  2018-03-17 17:37:47.000000000 +0100
+++ new/nbxmpp-0.6.10/nbxmpp/auth_nb.py 2019-02-18 20:51:20.000000000 +0100
@@ -24,7 +24,7 @@
 from __future__ import unicode_literals
 
 from .protocol import NS_SASL, NS_SESSION, NS_STREAMS, NS_BIND, NS_AUTH
-from .protocol import NS_STREAM_MGMT
+from .protocol import NS_STREAM_MGMT, NS_DOMAIN_BASED_NAME
 from .protocol import Node, NodeProcessed, isResultNode, Iq, Protocol, JID
 from .plugin import PlugIn
 import sys
@@ -96,7 +96,7 @@
 
 SASL_AUTHENTICATION_MECHANISMS = \
     set(['ANONYMOUS', 'EXTERNAL', 'GSSAPI', 'SCRAM-SHA-1-PLUS', 'SCRAM-SHA-1',
-         'DIGEST-MD5', 'PLAIN', 'X-MESSENGER-OAUTH2'])
+         'PLAIN', 'X-MESSENGER-OAUTH2'])
 
 class SASL(PlugIn):
     """
@@ -124,6 +124,7 @@
         self.channel_binding = channel_binding
         self.enabled_auth_mechs = auth_mechs
         self.realm = None
+        self._domain_based_name = None
 
     def plugin(self, owner):
         if 'version' not in self._owner.Dispatcher.Stream._document_attrs:
@@ -189,6 +190,10 @@
             in feats.getTag('mechanisms', 
namespace=NS_SASL).getTags('mechanism')
         ) & self.enabled_auth_mechs
 
+        hostname = feats.getTag('hostname', namespace=NS_DOMAIN_BASED_NAME)
+        if hostname is not None:
+            self._domain_based_name = hostname.getData()
+
         # Password based authentication mechanism ordered by strength.
         # If the server supports a mechanism disable all weaker mechanisms.
         password_auth_mechs_strength = ['SCRAM-SHA-1-PLUS', 'SCRAM-SHA-1',
@@ -229,9 +234,9 @@
             raise NodeProcessed
         if 'GSSAPI' in self.mecs and have_kerberos:
             self.mecs.remove('GSSAPI')
+            hostname = self._domain_based_name or self._owner.xmpp_hostname
             try:
-                self.gss_vc = kerberos.authGSSClientInit('xmpp@' + \
-                    self._owner.xmpp_hostname)[1]
+                self.gss_vc = kerberos.authGSSClientInit('xmpp@%s' % 
hostname)[1]
                 kerberos.authGSSClientStep(self.gss_vc, '')
                 response = kerberos.authGSSClientResponse(self.gss_vc)
                 node=Node('auth', attrs={'xmlns': NS_SASL,
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/bosh.py 
new/nbxmpp-0.6.10/nbxmpp/bosh.py
--- old/nbxmpp-0.6.6/nbxmpp/bosh.py     2018-05-02 13:56:23.000000000 +0200
+++ new/nbxmpp-0.6.10/nbxmpp/bosh.py    2019-02-18 20:51:20.000000000 +0100
@@ -44,10 +44,6 @@
             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.http_version = 'HTTP/1.1'
         self.http_persistent = True
@@ -416,7 +412,7 @@
             t = BOSHBody(
                     attrs={ 'to': self.bosh_to,
                             'sid': self.bosh_sid,
-                            'xml:lang': self.bosh_xml_lang,
+                            'xml:lang': self._owner.lang,
                             'xmpp:restart': 'true',
                             'secure': self.bosh_secure,
                             'xmlns:xmpp': 'urn:xmpp:xbosh'})
@@ -427,7 +423,7 @@
                     'route': 'xmpp:%s:%s' % (self.route_host, self.route_port),
                     'to': self.bosh_to,
                     'wait': str(self.bosh_wait),
-                    'xml:lang': self.bosh_xml_lang,
+                    'xml:lang': self._owner.lang,
                     'xmpp:version': '1.0',
                     'ver': '1.6',
                     'xmlns:xmpp': 'urn:xmpp:xbosh'})
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/client_nb.py 
new/nbxmpp-0.6.10/nbxmpp/client_nb.py
--- old/nbxmpp-0.6.6/nbxmpp/client_nb.py        2018-05-19 20:52:45.000000000 
+0200
+++ new/nbxmpp-0.6.10/nbxmpp/client_nb.py       2019-02-18 20:51:20.000000000 
+0100
@@ -37,7 +37,7 @@
     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 @@
         """
         self.Namespace = protocol.NS_CLIENT
         self.defaultNamespace = self.Namespace
+        self.lang = lang
 
         self.idlequeue = idlequeue
         self.disconnect_handlers = []
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/dispatcher_nb.py 
new/nbxmpp-0.6.10/nbxmpp/dispatcher_nb.py
--- old/nbxmpp-0.6.6/nbxmpp/dispatcher_nb.py    2018-01-27 21:32:42.000000000 
+0100
+++ new/nbxmpp-0.6.10/nbxmpp/dispatcher_nb.py   2019-02-18 20:51:20.000000000 
+0100
@@ -194,9 +194,7 @@
         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):
@@ -417,6 +415,9 @@
 
         #log.info('dispatch called: stanza = %s, session = %s, direct= %s'
         #       % (stanza, session, direct))
+
+        self.Event('', 'STANZA RECEIVED', stanza)
+
         if not session:
             session = self
         session.Stream._mini_dom = None
@@ -434,21 +435,21 @@
         # log.info('in dispatch, getting ns for %s, and the ns is %s'
         # % (stanza, xmlns))
         if xmlns not in self.handlers:
-            log.warning("Unknown namespace: " + xmlns)
+            log.warning('Unknown namespace: %s', xmlns)
             xmlns = 'unknown'
         # features stanza has been handled before
         if name not in self.handlers[xmlns]:
-            if name != 'features':
-                log.warning("Unknown stanza: " + name)
+            if name not in ('features', 'stream'):
+                log.warning('Unknown stanza: %s', stanza)
             else:
-                log.debug("Got %s/%s stanza" % (xmlns, name))
-            name='unknown'
+                log.debug('Got %s/%s stanza' % (xmlns, name))
+            name = 'unknown'
         else:
-            log.debug("Got %s/%s stanza" % (xmlns, name))
+            log.debug('Got %s/%s stanza' % (xmlns, name))
 
         if stanza.__class__.__name__ == 'Node':
             # FIXME: this cannot work
-            stanza=self.handlers[xmlns][name][type](node=stanza)
+            stanza = self.handlers[xmlns][name][type](node=stanza)
 
         typ = stanza.getType()
         if not typ:
@@ -456,6 +457,8 @@
         stanza.props = stanza.getProperties()
         ID = stanza.getID()
 
+        log.debug('type: %s, properties: %s', typ, stanza.props)
+
         # If server supports stream management
         if self.sm and self.sm.enabled and (stanza.getName() != 'r' and
         stanza.getName() != 'a' and stanza.getName() != 'enabled' and
@@ -495,6 +498,7 @@
         for handler in chain:
             if user or handler['system']:
                 try:
+                    log.debug('Call handler: %s', handler['func'])
                     handler['func'](session, stanza)
                 except Exception as typ:
                     if typ.__class__.__name__ != 'NodeProcessed':
@@ -617,9 +621,7 @@
         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)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/protocol.py 
new/nbxmpp-0.6.10/nbxmpp/protocol.py
--- old/nbxmpp-0.6.6/nbxmpp/protocol.py 2018-04-30 13:46:12.000000000 +0200
+++ new/nbxmpp-0.6.10/nbxmpp/protocol.py        2019-02-18 20:51:20.000000000 
+0100
@@ -43,6 +43,8 @@
 NS_ATTENTION      = 'urn:xmpp:attention:0'                            # 
XEP-0224
 NS_AUTH           = 'jabber:iq:auth'
 NS_AVATAR         = 'http://www.xmpp.org/extensions/xep-0084.html#ns-metadata'
+NS_AVATAR_METADATA = 'urn:xmpp:avatar:metadata'                                
                  # XEP-0084
+NS_AVATAR_DATA   = 'urn:xmpp:avatar:data'                                      
                  # XEP-0084
 NS_BIND           = 'urn:ietf:params:xml:ns:xmpp-bind'
 NS_BLOCKING       = 'urn:xmpp:blocking'                               # 
XEP-0191
 NS_BOB            = 'urn:xmpp:bob'                                    # 
XEP-0231
@@ -188,6 +190,7 @@
 NS_HASHES_BLAKE2B_256 = 'urn:xmpp:hash-function-text-names:id-blake2b256'
 NS_HASHES_BLAKE2B_512 = 'urn:xmpp:hash-function-text-names:id-blake2b512'
 NS_OPENPGP = 'urn:xmpp:openpgp:0'
+NS_DOMAIN_BASED_NAME = 'urn:xmpp:domain-based-name:1'
 
 #xmpp_stream_error_conditions = '''
 #bad-format --  --  -- The entity has sent XML that cannot be processed.
@@ -1428,7 +1431,7 @@
 
     supported = ('sha-256', 'sha-512', 'sha3-256', 'sha3-512', 'blake2b-256', 
'blake2b-512')
 
-    def __init__(self, nsp=NS_HASHES):
+    def __init__(self, nsp=NS_HASHES_2):
         Node.__init__(self, None, {}, [], None, None, False, None)
         self.setNamespace(nsp)
         self.setName('hash')
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/simplexml.py 
new/nbxmpp-0.6.10/nbxmpp/simplexml.py
--- old/nbxmpp-0.6.6/nbxmpp/simplexml.py        2017-08-05 21:17:49.000000000 
+0200
+++ new/nbxmpp-0.6.10/nbxmpp/simplexml.py       2019-02-18 20:51:20.000000000 
+0100
@@ -634,6 +634,9 @@
                     self._document_attrs[attr] = val
             ns = self._document_nsp.get(nsp, 
'http://www.gajim.org/xmlns/undeclared-root')
             try:
+                header = Node(tag=tag, attrs=attrs,
+                              nsp=self._document_nsp, node_built=True)
+                self.dispatch(header)
                 self.stream_header_received(ns, name, attrs)
             except ValueError as e:
                 self._document_attrs = None
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/smacks.py 
new/nbxmpp-0.6.10/nbxmpp/smacks.py
--- old/nbxmpp-0.6.6/nbxmpp/smacks.py   2018-01-27 21:32:42.000000000 +0100
+++ new/nbxmpp-0.6.10/nbxmpp/smacks.py  2019-02-18 20:51:20.000000000 +0100
@@ -50,6 +50,8 @@
 
     def _neg_response(self, disp, stanza):
         r = stanza.getAttr('resume')
+        # When we receive enabled from the server, reset the IN count
+        self.in_h = 0
         log.info("Session resumption: %s" % r)
         if r == 'true' or r == 'True' or r == '1':
             self.resumption = True
@@ -182,42 +184,36 @@
             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._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)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/nbxmpp/tls_nb.py 
new/nbxmpp-0.6.10/nbxmpp/tls_nb.py
--- old/nbxmpp-0.6.6/nbxmpp/tls_nb.py   2018-05-02 13:56:23.000000000 +0200
+++ new/nbxmpp-0.6.10/nbxmpp/tls_nb.py  2019-02-18 20:51:20.000000000 +0100
@@ -269,11 +269,11 @@
         self.cacerts = cacerts
         self.mycerts = mycerts
         if cipher_list is None:
-            self.cipher_list = b'HIGH:!aNULL:RC4-SHA'
+            self.cipher_list = b'HIGH:!aNULL'
         else:
             self.cipher_list = cipher_list.encode('ascii')
         if tls_version is None:
-            self.tls_version = '1.0'
+            self.tls_version = '1.2'
         else:
             self.tls_version = tls_version
         self.alpn = alpn
@@ -342,11 +342,12 @@
                 f = open(cert_path, encoding='utf-8')
             else:
                 f = io.open(cert_path, encoding='utf-8')
+            lines = f.readlines()
         except (IOError, UnicodeError) as e:
             log.warning('Unable to open certificate file %s: %s' % \
                     (cert_path, str(e)))
             return
-        lines = f.readlines()
+
         i = 0
         begin = -1
         for line in lines:
@@ -447,12 +448,15 @@
         store = tcpsock._sslContext.get_cert_store()
         self._load_cert_file(self.cacerts, store)
         self._load_cert_file(self.mycerts, store)
-        if os.path.isdir('/etc/ssl/certs'):
-            for f in os.listdir('/etc/ssl/certs'):
-                # We don't logg because there is a lot a duplicated certs in 
this
-                # folder
-                self._load_cert_file(os.path.join('/etc/ssl/certs', f), store,
-                        logg=False)
+        paths = ['/etc/ssl/certs',
+                 '/etc/ssl']  # FreeBSD uses this
+        for path in paths:
+            if not os.path.isdir(path):
+                continue
+            for f in os.listdir(path):
+                # We don't logg because there is a lot a duplicated certs
+                # in this folder
+                self._load_cert_file(os.path.join(path, f), store, logg=False)
 
         tcpsock._sslObj = OpenSSL.SSL.Connection(tcpsock._sslContext,
                 tcpsock._sock)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/nbxmpp-0.6.6/setup.py new/nbxmpp-0.6.10/setup.py
--- old/nbxmpp-0.6.6/setup.py   2018-05-19 20:52:45.000000000 +0200
+++ new/nbxmpp-0.6.10/setup.py  2019-02-18 20:51:20.000000000 +0100
@@ -3,7 +3,7 @@
 from distutils.core import setup
 
 setup(name='nbxmpp',
-      version='0.6.6',
+      version='0.6.10',
       description='Non blocking Jabber/XMPP module',
       author='Yann Leboulanger',
       author_email='[email protected]',


Reply via email to