Skip to content
Snippets Groups Projects
Commit fb5d58de authored by Yann Leboulanger's avatar Yann Leboulanger
Browse files

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

parent 1dc1adf0
No related branches found
No related tags found
No related merge requests found
...@@ -770,7 +770,10 @@ class Socks5: ...@@ -770,7 +770,10 @@ class Socks5:
if self.queue.listener.connections == []: if self.queue.listener.connections == []:
self.queue.listener.disconnect() self.queue.listener.disconnect()
try: try:
self._sock.shutdown(socket.SHUT_RDWR) if isinstance(self._sock, OpenSSL.SSL.Connection):
self._sock.shutdown()
else:
self._sock.shutdown(socket.SHUT_RDWR)
self._sock.close() self._sock.close()
except Exception: except Exception:
# socket is already closed # socket is already closed
...@@ -901,7 +904,8 @@ class Socks5Sender(IdleObject): ...@@ -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): ...@@ -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)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment