| 53 | |
| 54 | |
| 55 | class AddrTest(BitcoinTestFramework): |
| 56 | def set_test_params(self): |
| 57 | self.setup_clean_chain = True |
| 58 | self.num_nodes = 1 |
| 59 | self.extra_args = [["-whitelist=addr@127.0.0.1"]] |
| 60 | |
| 61 | def run_test(self): |
| 62 | self.log.info('Create connection that sends addrv2 messages') |
| 63 | addr_source = self.nodes[0].add_p2p_connection(P2PInterface()) |
| 64 | msg = msg_addrv2() |
| 65 | |
| 66 | self.log.info('Send too-large addrv2 message') |
| 67 | msg.addrs = ADDRS * 101 |
| 68 | with self.nodes[0].assert_debug_log(['addrv2 message size = 1010']): |
| 69 | addr_source.send_and_ping(msg) |
| 70 | |
| 71 | self.log.info('Check that addrv2 message content is relayed and added to addrman') |
| 72 | addr_receiver = self.nodes[0].add_p2p_connection(AddrReceiver()) |
| 73 | msg.addrs = ADDRS |
| 74 | with self.nodes[0].assert_debug_log([ |
| 75 | 'received: addrv2 (159 bytes) peer=0', |
| 76 | 'sending addrv2 (159 bytes) peer=1', |
| 77 | ]): |
| 78 | addr_source.send_and_ping(msg) |
| 79 | self.nodes[0].setmocktime(int(time.time()) + 30 * 60) |
| 80 | addr_receiver.wait_for_addrv2() |
| 81 | |
| 82 | assert addr_receiver.addrv2_received_and_checked |
| 83 | assert_equal(len(self.nodes[0].getnodeaddresses(count=0, network="i2p")), 0) |
| 84 | |
| 85 | |
| 86 | if __name__ == '__main__': |