Esempio n. 1
0
 def __init__(self, *, framer=None, loop=None):
     self.framer = framer or self.default_framer()
     self.loop = loop or asyncio.get_event_loop()
     self.logger = logging.getLogger(self.__class__.__name__)
     self.transport = None
     # Set when a connection is made
     self._address = None
     self._proxy_address = None
     # For logger.debug messages
     self.verbosity = 0
     # Cleared when the send socket is full
     self._can_send = Event()
     self._can_send.set()
     self._pm_task = None
     self._task_group = TaskGroup(self.loop)
     # Force-close a connection if a send doesn't succeed in this time
     self.max_send_delay = 60
     # Statistics.  The RPC object also keeps its own statistics.
     self.start_time = time.perf_counter()
     self.errors = 0
     self.send_count = 0
     self.send_size = 0
     self.last_send = self.start_time
     self.recv_count = 0
     self.recv_size = 0
     self.last_recv = self.start_time
     self.last_packet_received = self.start_time
Esempio n. 2
0
    def __init__(self, env, db):
        self.logger = class_logger(__name__, self.__class__.__name__)
        # Initialise the Peer class
        Peer.DEFAULT_PORTS = env.coin.PEER_DEFAULT_PORTS
        self.env = env
        self.db = db

        # Our clearnet and Tor Peers, if any
        sclass = env.coin.SESSIONCLS
        self.myselves = [Peer(ident.host, sclass.server_features(env), 'env')
                         for ident in env.identities]
        self.server_version_args = sclass.server_version_args()
        # Peers have one entry per hostname.  Once connected, the
        # ip_addr property is either None, an onion peer, or the
        # IP address that was connected to.  Adding a peer will evict
        # any other peers with the same host name or IP address.
        self.peers: typing.Set[Peer] = set()
        self.permit_onion_peer_time = time.time()
        self.proxy = None
        self.group = TaskGroup()
Esempio n. 3
0
 async def test_cancel_sets_it_done(self):
     group = TaskGroup()
     group.cancel()
     self.assertTrue(group.done.is_set())