(f=None)
| 840 | ssl_shutdown_timeout=None, context=None): |
| 841 | |
| 842 | def loop(f=None): |
| 843 | try: |
| 844 | if f is not None: |
| 845 | conn, addr = f.result() |
| 846 | if self._debug: |
| 847 | logger.debug("%r got a new connection from %r: %r", |
| 848 | server, addr, conn) |
| 849 | protocol = protocol_factory() |
| 850 | if sslcontext is not None: |
| 851 | self._make_ssl_transport( |
| 852 | conn, protocol, sslcontext, server_side=True, |
| 853 | extra={'peername': addr}, server=server, |
| 854 | ssl_handshake_timeout=ssl_handshake_timeout, |
| 855 | ssl_shutdown_timeout=ssl_shutdown_timeout) |
| 856 | else: |
| 857 | self._make_socket_transport( |
| 858 | conn, protocol, |
| 859 | extra={'peername': addr}, server=server) |
| 860 | if self.is_closed(): |
| 861 | return |
| 862 | f = self._proactor.accept(sock) |
| 863 | except OSError as exc: |
| 864 | if sock.fileno() != -1: |
| 865 | self.call_exception_handler({ |
| 866 | 'message': 'Accept failed on a socket', |
| 867 | 'exception': exc, |
| 868 | 'socket': trsock.TransportSocket(sock), |
| 869 | }) |
| 870 | sock.close() |
| 871 | elif self._debug: |
| 872 | logger.debug("Accept failed on socket %r", |
| 873 | sock, exc_info=True) |
| 874 | except exceptions.CancelledError: |
| 875 | sock.close() |
| 876 | else: |
| 877 | self._accept_futures[sock.fileno()] = f |
| 878 | f.add_done_callback(loop) |
| 879 | |
| 880 | self.call_soon(loop) |
| 881 |
nothing calls this directly
no test coverage detected