Skip to content

Commit dd4e957

Browse files
committed
test: ensure banlist can be read from disk after restart
With `banlist.dat` (being written in addrv1 format) if we would try to write a Tor v3 subnet, it would serialize as a dummy-all-0s IPv6 address and subsequently, when deserialized will not result in the same subnet. This problem does not exist with `banlist.json` where the data is saved in textual, human-readable form.
1 parent d197977 commit dd4e957

File tree

1 file changed

+12
-0
lines changed

1 file changed

+12
-0
lines changed

test/functional/rpc_setban.py

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,12 +51,24 @@ def run_test(self):
5151
ip_addr = "1.2.3.4"
5252
assert(not self.is_banned(node, tor_addr))
5353
assert(not self.is_banned(node, ip_addr))
54+
5455
node.setban(tor_addr, "add")
5556
assert(self.is_banned(node, tor_addr))
5657
assert(not self.is_banned(node, ip_addr))
58+
59+
self.log.info("Test the ban list is preserved through restart")
60+
61+
self.restart_node(1)
62+
assert(self.is_banned(node, tor_addr))
63+
assert(not self.is_banned(node, ip_addr))
64+
5765
node.setban(tor_addr, "remove")
5866
assert(not self.is_banned(self.nodes[1], tor_addr))
5967
assert(not self.is_banned(node, ip_addr))
6068

69+
self.restart_node(1)
70+
assert(not self.is_banned(node, tor_addr))
71+
assert(not self.is_banned(node, ip_addr))
72+
6173
if __name__ == '__main__':
6274
SetBanTests().main()

0 commit comments

Comments
 (0)