don't do SSL over SSL and correctly shutdown SSL sockets.

This commit is contained in:
Yann Leboulanger 2012-08-23 11:36:51 +02:00
parent 1dc1adf073
commit fb5d58de11

View file

@ -770,6 +770,9 @@ class Socks5:
if self.queue.listener.connections == []: if self.queue.listener.connections == []:
self.queue.listener.disconnect() self.queue.listener.disconnect()
try: try:
if isinstance(self._sock, OpenSSL.SSL.Connection):
self._sock.shutdown()
else:
self._sock.shutdown(socket.SHUT_RDWR) self._sock.shutdown(socket.SHUT_RDWR)
self._sock.close() self._sock.close()
except Exception: except Exception:
@ -901,7 +904,8 @@ class Socks5Sender(IdleObject):
self._sock = _sock self._sock = _sock
if _sock is not None: if _sock is not None:
if self.fingerprint is not None: if self.fingerprint is not None and not isinstance(self._sock,
OpenSSL.SSL.Connection):
self._sock = OpenSSL.SSL.Connection( self._sock = OpenSSL.SSL.Connection(
jingle_xtls.get_context('server'), _sock) jingle_xtls.get_context('server'), _sock)
else: else:
@ -938,7 +942,7 @@ class Socks5Sender(IdleObject):
if self.fingerprint is not None: if self.fingerprint is not None:
self._sock = OpenSSL.SSL.Connection( self._sock = OpenSSL.SSL.Connection(
jingle_xtls.get_context('client'), self._sock) jingle_xtls.get_context('client'), _sock)
else: else:
self._sock.setblocking(False) self._sock.setblocking(False)