コード例 #1
0
 def run_bind_test(self, allow_ips, connect_to, addresses, expected):
     '''
     Start a node with requested rpcallowip and rpcbind parameters,
     then try to connect, and check if the set of bound addresses
     matches the expected set.
     '''
     self.log.info("Bind test for %s" % str(addresses))
     expected = [(addr_to_hex(addr), port) for (addr, port) in expected]
     base_args = ['-disablewallet', '-nolisten']
     if allow_ips:
         base_args += ['-rpcallowip=' + x for x in allow_ips]
     binds = ['-rpcbind='+addr for addr in addresses]
     self.nodes[0].rpchost = connect_to
     self.start_node(0, base_args + binds)
     pid = self.nodes[0].process.pid
     assert_equal(set(get_bind_addrs(pid)), set(expected))
     self.stop_nodes()
コード例 #2
0
ファイル: rpc_bind.py プロジェクト: Alongteng/dogx-master
 def run_bind_test(self, allow_ips, connect_to, addresses, expected):
     '''
     Start a node with requested rpcallowip and rpcbind parameters,
     then try to connect, and check if the set of bound addresses
     matches the expected set.
     '''
     self.log.info("Bind test for %s" % str(addresses))
     expected = [(addr_to_hex(addr), port) for (addr, port) in expected]
     base_args = ['-disablewallet', '-nolisten']
     if allow_ips:
         base_args += ['-rpcallowip=' + x for x in allow_ips]
     binds = ['-rpcbind=' + addr for addr in addresses]
     self.nodes[0].rpchost = connect_to
     self.start_node(0, base_args + binds)
     pid = self.nodes[0].process.pid
     assert_equal(set(get_bind_addrs(pid)), set(expected))
     self.stop_nodes()
コード例 #3
0
def run_bind_test(tmpdir, allow_ips, connect_to, addresses, expected):
    '''
    Start a node with requested rpcallowip and rpcbind parameters,
    then try to connect, and check if the set of bound addresses
    matches the expected set.
    '''
    expected = [(addr_to_hex(addr), port) for (addr, port) in expected]
    base_args = ['-disablewallet', '-nolisten']
    if allow_ips:
        base_args += ['-rpcallowip=' + x for x in allow_ips]
    binds = ['-rpcbind=' + addr for addr in addresses]
    nodes = start_nodes(1, tmpdir, [base_args + binds], connect_to)
    try:
        pid = bitcoind_processes[0].pid
        assert_equal(set(get_bind_addrs(pid)), set(expected))
    finally:
        stop_nodes(nodes)
        wait_bitcoinds()
コード例 #4
0
ファイル: rpcbind_test.py プロジェクト: bitcartel/zcash
def run_bind_test(tmpdir, allow_ips, connect_to, addresses, expected):
    '''
    Start a node with requested rpcallowip and rpcbind parameters,
    then try to connect, and check if the set of bound addresses
    matches the expected set.
    '''
    expected = [(addr_to_hex(addr), port) for (addr, port) in expected]
    base_args = ['-disablewallet', '-nolisten']
    if allow_ips:
        base_args += ['-rpcallowip=' + x for x in allow_ips]
    binds = ['-rpcbind='+addr for addr in addresses]
    nodes = start_nodes(1, tmpdir, [base_args + binds], connect_to)
    try:
        pid = bitcoind_processes[0].pid
        assert_equal(set(get_bind_addrs(pid)), set(expected))
    finally:
        stop_nodes(nodes)
        wait_bitcoinds()
コード例 #5
0
    def setup_network(self):
        # Override setup_network() because we want to put the result of
        # p2p_port() in self.extra_args[], before the nodes are started.
        # p2p_port() is not usable in set_test_params() because PortSeed.n is
        # not set at that time.

        # Due to OS-specific network stats queries, we only run on Linux.
        self.log.info("Checking for Linux")
        if not sys.platform.startswith('linux'):
            raise SkipTest("This test can only be run on Linux.")

        loopback_ipv4 = addr_to_hex("127.0.0.1")

        # Start custom ports after p2p and rpc ports.
        port = PORT_MIN + 2 * PORT_RANGE

        # Array of tuples [command line arguments, expected bind addresses].
        self.expected = []

        # Node0, no normal -bind=... with -bind=...=onion, thus only the tor target.
        self.expected.append(
            [
                [f"-bind=127.0.0.1:{port}=onion"],
                [(loopback_ipv4, port)]
            ],
        )
        port += 1

        # Node1, both -bind=... and -bind=...=onion.
        self.expected.append(
            [
                [f"-bind=127.0.0.1:{port}", f"-bind=127.0.0.1:{port + 1}=onion"],
                [(loopback_ipv4, port), (loopback_ipv4, port + 1)]
            ],
        )
        port += 2

        self.extra_args = list(map(lambda e: e[0], self.expected))
        self.add_nodes(self.num_nodes, self.extra_args)