def handle_new_connection(self, socktype, listener, _handle): socket_info = self.socket_info.get(listener) assert socktype, "cannot find socket type for %s" % listener socket_options = self.socket_options.get(listener, {}) assert socktype != "named-pipe" conn = accept_connection(socktype, listener, SOCKET_TIMEOUT, socket_options) if conn is None: return #limit number of concurrent network connections: if len(self._potential_protocols) >= MAX_CONCURRENT_CONNECTIONS: log.error("Error: too many connections (%i)", len(self._potential_protocols)) log.error(" ignoring new one: %s", conn.endpoint) conn.close() return sock = conn._socket socktype = conn.socktype peername = conn.endpoint sockname = sock.getsockname() target = peername or sockname log("handle_new_connection%s sockname=%s, target=%s", (conn, socket_info, socket_options), sockname, target) sock.settimeout(SOCKET_TIMEOUT) log_new_connection(conn, socket_info) socktype = socktype.lower() protocol = Protocol(self, conn, self.process_network_packet) #protocol.large_packets.append(b"info-response") protocol.socket_type = socktype self._potential_protocols.append(protocol) protocol.authenticators = () protocol.start()
def make_protocol(self, socktype, conn, listener): socktype = socktype.lower() protocol = Protocol(self, conn, self.process_network_packet) #protocol.large_packets.append(b"info-response") protocol.socket_type = socktype self._potential_protocols.append(protocol) protocol.authenticators = () protocol.start()