What would Twisted do? (WWTD) On Wed, Jan 28, 2015 at 6:20 PM, Victor Stinner <victor.stin...@gmail.com> wrote:
> 2015-01-29 2:47 GMT+01:00 Guido van Rossum <gu...@python.org>: > > Doesn't the exception bubble up to the caller of create_connection()? > > Yes, it does. > > > So what's the problem? > > The problem is in server which accepts incoming connections: > BaseSelectorEventLoop._accept_conncetion(). Extract of the code: > --- > conn, addr = sock.accept() > (...) > protocol = protocol_factory() > if sslcontext: > self._make_ssl_transport( > conn, protocol, sslcontext, > server_side=True, extra={'peername': addr}, server=server) > else: > self._make_socket_transport( > conn, protocol , extra={'peername': addr}, > server=server) > # It's now up to the protocol to handle the connection. > --- > > If the transport fails before calling connection_made() (ex: SSL > handshake failure): the transport and the protocol are destroyed, no > message is logged, the server is not aware of the connection failure. > > I would like to notify the server through the protocol (call > connection_failed) that an incoming connection failed. Random use > case: blacklist temporary the client IP. > > Victor > -- --Guido van Rossum (python.org/~guido)