Example #1
0
        def doSSLShutdown(self, socket):
            '''Clear the SSL part of a socket.'''
            socket.set_shutdown(ssl.SENT_SHUTDOWN | ssl.RECEIVED_SHUTDOWN)

            # Don't close the socket unless negotiation is done.
            while True:
                try:
                    socket.do_handshake()
                except ssl.WantReadError:
                    pass

                try:
                    state = socket.get_state_string()
                except AttributeError:
                    # Older pyOpenSSL
                    state = socket.state_string()

                if state == 'SSL negotiation finished successfully':
                    break

                # state is None if SSL layer does not support state string
                # so we fall back to this flag, which some of the time
                # does not produce the expected results.
                if state is None and not socket.renegotiate_pending():
                    break

                # Allow the handshake to be done.
                time.sleep(0.01)

            socket.shutdown()
Example #2
0
File: gev.py Project: rep/pwrcall
 def handle(socket, addr):
     socket = pwrtls.wrap_socket(socket,
                                 server_side=True,
                                 **pwrtls.state_file(statepath))
     try:
         socket.do_handshake()
     except Exception as e:
         logging.warn('PTLS Client handshake failure. Closing')
     else:
         self._new_conn(socket, addr)
Example #3
0
 def ssl_do_handshake(socket, *args, **kwargs):
     """Performs an SSL handshake asynchronously."""
     while True:
         try:
             return socket.do_handshake()
         except (_ssl.SSLWantReadError, _ssl.SSLWantWriteError):
             yield
Example #4
0
 def get_request(self):
     (socket, addr) = TCPServer.get_request(self)
     socket.do_handshake()
     return (socket, addr)
Example #5
0
def ssl_do_handshake(socket, *args, **kwargs):
    while True:
        try:
            return socket.do_handshake(*args, **kwargs)
        except (_ssl.SSLWantReadError, _ssl.SSLWantWriteError):
            yield
Example #6
0
 def get_request(self):
     (socket, addr) = socketserver.TCPServer.get_request(self)
     socket.do_handshake()
     #print(socket.cipher())
     return (socket, addr)
Example #7
0
    def get_request(self):
        (socket, addr) = SocketServer.TCPServer.get_request(self)
        socket.do_handshake()

        return (socket, addr)
Example #8
0
File: gev.py Project: rep/pwrcall
		def handle(socket, addr):
			socket = pwrtls.wrap_socket(socket, server_side=True, **pwrtls.state_file(statepath))
			try: socket.do_handshake()
			except Exception as e: logging.warn('PTLS Client handshake failure. Closing')
			else: self._new_conn(socket, addr)
Example #9
0
 def get_request(self):
     socket, addr = ThreadingTCPServer.get_request(self)
     print(f"与 {addr} 建立TCP连接")
     # postpone the handshake
     socket.do_handshake()
     return socket, addr