Hi,
intrigeri wrote (19 Mar 2015 15:30:15 GMT) :
> I'll try to come up with a minimal patch that satisfies the freeze
> policy (introducing the quilt machinery is definitely not an option at
> this stage of the freeze). And then I'll prepare a NMU.
I intend to NMU with the attached patch applied in a few days,
assuming:
0. anonym confirms that a package built with this patch applied fixes
the problem for him on current Jessie
1. The maintainer doesn't disagree this is RC
2. The maintainer doesn't says he has a better fix in progress
Cheers,
--
intrigeri
diff -u python-xmpp-0.4.1/debian/changelog python-xmpp-0.4.1/debian/changelog
--- python-xmpp-0.4.1/debian/changelog
+++ python-xmpp-0.4.1/debian/changelog
@@ -1,3 +1,11 @@
+python-xmpp (0.4.1-cvs20080505.4) UNRELEASED; urgency=medium
+
+ * Non-maintainer upload.
+ * Update SSL socket handling to work with Jessie's Python (Closes: #766475).
+ Thanks to Vladimir Osintsev <[email protected]> for the patch!
+
+ -- intrigeri <[email protected]> Thu, 19 Mar 2015 16:33:09 +0100
+
python-xmpp (0.4.1-cvs20080505.3) unstable; urgency=low
* Non-maintainer upload.
diff -u python-xmpp-0.4.1/xmpp/transports.py python-xmpp-0.4.1/xmpp/transports.py
--- python-xmpp-0.4.1/xmpp/transports.py
+++ python-xmpp-0.4.1/xmpp/transports.py
@@ -27,7 +27,7 @@
Also exception 'error' is defined to allow capture of this module specific exceptions.
"""
-import socket,select,base64,dispatcher,sys
+import socket,ssl,select,base64,dispatcher,sys
from simplexml import ustr
from client import PlugIn
from protocol import *
@@ -305,9 +305,9 @@
""" Immidiatedly switch socket to TLS mode. Used internally."""
""" Here we should switch pending_data to hint mode."""
tcpsock=self._owner.Connection
- tcpsock._sslObj = socket.ssl(tcpsock._sock, None, None)
- tcpsock._sslIssuer = tcpsock._sslObj.issuer()
- tcpsock._sslServer = tcpsock._sslObj.server()
+ tcpsock._sslObj = ssl.wrap_socket(tcpsock._sock, None, None)
+ tcpsock._sslIssuer = tcpsock._sslObj.getpeercert().get('issuer')
+ tcpsock._sslServer = tcpsock._sslObj.getpeercert().get('server')
tcpsock._recv = tcpsock._sslObj.read
tcpsock._send = tcpsock._sslObj.write