Coder Social home page Coder Social logo

xmpppy's People

Contributors

alucardfh avatar cyrilpeponnet avatar gebner avatar iamsudip avatar ivucica avatar malbon avatar normanr avatar provonet avatar rulexec avatar snakeru avatar umonkey avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar

xmpppy's Issues

Switch from socket.ssl to ssl.wrap_socket

On Debian based distribution with libpython2.7-stdlib >= 2.7.8-10 socket.ssl seems to be broken/deprecated.
Failed with error :

File "/opt/Archipel-nighties/ArchipelAgent/archipel-core/archipelcore/xmpp/transports.py", line 360, in _startSSL
tcpsock._sslIssuer = tcpsock._sslObj.issuer()
AttributeError: '_ssl._SSLSocket' object has no attribute 'issuer'

The easy workaround is to use ssl.wrap_socket instead.

diff --git a/transports.py b/transports.py
index 6312a0d..2563e1a 100644
--- a/transports.py
+++ b/transports.py
@@ -27,7 +27,7 @@ Transports are stackable so you - f.e. TLS use HTPPROXYsocket or TCPsocket as mo
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 *
@@ -356,9 +356,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

Tested on ubuntu 14.10 with libpython2.7-stdlib version 2.7.8-10ubuntu1

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.