[PYTHON] Avec xmpppy'_ssl._SSLSocket 'l'objet n'a pas d'attribut' émetteur '

D'une manière ou d'une autre, lorsque j'essaie de communiquer avec xmpppy, cela échoue avec l'erreur dans le titre. Le mouvement autour de SSL est étrange. Quand je suis googlé [ici](http://terminus.ignaciocano.com/k/2015/02/03/solucionado-el-error-attributeerror-_ssl-_sslsocket-object-has-no-attribute-issuer-en -Découvert ubuntu-utopic-unicorn /).

Vous semblez pouvoir appliquer le patch? Au fait, voici la version à portée de main

[sayamada@PyXmppClient]$pip freeze|grep xmpp
xmpppy==0.5.0rc1

--- xmpp/transports.py.orig	2010-04-06 21:05:04.000000000 +0800
+++ xmpp/transports.py	2010-04-06 21:05:20.000000000 +0800
@@ -27,7 +27,7 @@ Transports are stackable so you - f.e. T
 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 *
@@ -312,9 +312,9 @@ class TLS(PlugIn):
         """ 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
 

Donc, quand je l'ai deviné, cela a été résolu en toute sécurité.

Recommended Posts

Avec xmpppy'_ssl._SSLSocket 'l'objet n'a pas d'attribut' émetteur '
AttributeError: l'objet 'NoneType' n'a pas d'attribut'loader '
Blender n'a pas d'ordre de sélection d'objet
[Python] Erreur d'attribut: l'objet 'list' n'a pas d'attribut replace '
Lorsque l'objet'DataFrame 'n'a pas d'attribut'ix' apparaît dans les pandas
Comment gérer le module 'Sensorflow' n'a aucun attribut '
Django "Query Set, Object has no attribute'foo '" solution
AttributeError: J'étais accro à l'objet'module 'qui n'a pas d'attribut'MyTestCase'
[Python] Contre-mesures pour "AttributeError: l'objet 'NoneType' de googletrans n'a pas d'attribut'group '"