Welcome to mirror list, hosted at ThFree Co, Russian Federation.

dev.gajim.org/gajim/python-nbxmpp.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYann Leboulanger <asterix@lagaule.org>2012-12-23 20:47:21 +0400
committerYann Leboulanger <asterix@lagaule.org>2012-12-23 20:47:21 +0400
commit6d2282068b7d2657cb64a4904d1c9bedecbaad69 (patch)
tree8e8462ee5d158b00a29f9bb5e3c4514d896cb92f
parent72ae2f08ce7fea0ba9f83ca59957345186b6d877 (diff)
store all SSL errors
-rw-r--r--nbxmpp/tls_nb.py12
-rw-r--r--nbxmpp/transports_nb.py6
2 files changed, 12 insertions, 6 deletions
diff --git a/nbxmpp/tls_nb.py b/nbxmpp/tls_nb.py
index b6a4f62..b2db33e 100644
--- a/nbxmpp/tls_nb.py
+++ b/nbxmpp/tls_nb.py
@@ -393,7 +393,7 @@ class NonBlockingTLS(PlugIn):
flags |= 16384
tcpsock._sslContext.set_options(flags)
- tcpsock.ssl_errnum = 0
+ tcpsock.ssl_errnum = [0]
tcpsock._sslContext.set_verify(OpenSSL.SSL.VERIFY_PEER,
self._ssl_verify_callback)
try:
@@ -449,11 +449,11 @@ class NonBlockingTLS(PlugIn):
def _ssl_verify_callback(self, sslconn, cert, errnum, depth, ok):
# Exceptions can't propagate up through this callback, so print them here.
try:
- self._owner.ssl_fingerprint_sha1 = cert.digest('sha1')
- self._owner.ssl_certificate = cert
- self._owner.ssl_errnum = errnum
- self._owner.ssl_cert_pem = OpenSSL.crypto.dump_certificate(
- OpenSSL.crypto.FILETYPE_PEM, cert)
+ self._owner.ssl_fingerprint_sha1.append(cert.digest('sha1'))
+ self._owner.ssl_certificate.append(cert)
+ self._owner.ssl_errnum.append(errnum)
+ self._owner.ssl_cert_pem.append(OpenSSL.crypto.dump_certificate(
+ OpenSSL.crypto.FILETYPE_PEM, cert))
return True
except:
log.error("Exception caught in _ssl_info_callback:", exc_info=True)
diff --git a/nbxmpp/transports_nb.py b/nbxmpp/transports_nb.py
index 2c17a39..e4101bd 100644
--- a/nbxmpp/transports_nb.py
+++ b/nbxmpp/transports_nb.py
@@ -310,6 +310,12 @@ class NonBlockingTCP(NonBlockingTransport, IdleObject):
self.proxy_dict = proxy_dict
self.on_remote_disconnect = self.disconnect
+ # ssl variables
+ self.ssl_fingerprint_sha1 = []
+ self.ssl_certificate = []
+ self.ssl_errnum = []
+ self.ssl_cert_pem = []
+
# FIXME: transport should not be aware xmpp
def start_disconnect(self):
NonBlockingTransport.start_disconnect(self)