> I tried to write a simple asyncore-based server code, then I used a > simple client to establish a connection with it. > Once the client is connected server raises the following exception:
I think this is a bug. Thanks! The issue is that the internal call to do_handshake() doesn't handle non-blocking sockets properly. You can work around the bug like this: --- snippet --- import asyncore, asynchat, socket, ssl, select class Handler(asyncore.dispatcher): def __init__(self, conn): asyncore.dispatcher.__init__(self, conn) self.socket = ssl.wrap_socket(conn, server_side=True, certfile='keycert.pem', do_handshake_on_connect=False) while True: try: self.socket.do_handshake() break except ssl.SSLError, err: if err.args[0] == ssl.SSL_ERROR_WANT_READ: select.select([self.socket], [], []) elif err.args[0] == ssl.SSL_ERROR_WANT_WRITE: select.select([], [self.socket], []) else: raise self.send('hi there') --- /snippet --- Bill _______________________________________________ Python-Dev mailing list Python-Dev@python.org http://mail.python.org/mailman/listinfo/python-dev Unsubscribe: http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com