MCPcopy Index your code
hub / github.com/python/cpython / AsyncoreEchoServer

Class AsyncoreEchoServer

Lib/test/test_ssl.py:2846–2962  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

2844 self.active = False
2845
2846class AsyncoreEchoServer(threading.Thread):
2847
2848 # this one's based on asyncore.dispatcher
2849
2850 class EchoServer (asyncore.dispatcher):
2851
2852 class ConnectionHandler(asyncore.dispatcher_with_send):
2853
2854 def __init__(self, conn, certfile):
2855 self.socket = test_wrap_socket(conn, server_side=True,
2856 certfile=certfile,
2857 do_handshake_on_connect=False)
2858 asyncore.dispatcher_with_send.__init__(self, self.socket)
2859 self._ssl_accepting = True
2860 self._do_ssl_handshake()
2861
2862 def readable(self):
2863 if isinstance(self.socket, ssl.SSLSocket):
2864 while self.socket.pending() > 0:
2865 self.handle_read_event()
2866 return True
2867
2868 def _do_ssl_handshake(self):
2869 try:
2870 self.socket.do_handshake()
2871 except (ssl.SSLWantReadError, ssl.SSLWantWriteError):
2872 return
2873 except ssl.SSLEOFError:
2874 return self.handle_close()
2875 except ssl.SSLError:
2876 raise
2877 except OSError as err:
2878 if err.args[0] == errno.ECONNABORTED:
2879 return self.handle_close()
2880 else:
2881 self._ssl_accepting = False
2882
2883 def handle_read(self):
2884 if self._ssl_accepting:
2885 self._do_ssl_handshake()
2886 else:
2887 data = self.recv(1024)
2888 if support.verbose:
2889 sys.stdout.write(" server: read %s from client\n" % repr(data))
2890 if not data:
2891 self.close()
2892 else:
2893 self.send(data.lower())
2894
2895 def handle_close(self):
2896 self.close()
2897 if support.verbose:
2898 sys.stdout.write(" server: closed connection %s\n" % self.socket)
2899
2900 def handle_error(self):
2901 raise
2902
2903 def __init__(self, certfile):

Callers 1

test_asyncore_serverMethod · 0.85

Calls

no outgoing calls

Tested by 1

test_asyncore_serverMethod · 0.68

Used in the wild real call sites across dependent graphs

searching dependent graphs…