diff options
author | 0xb10c <b10c@b10c.me> | 2023-12-04 15:56:40 +0100 |
---|---|---|
committer | 0xb10c <b10c@b10c.me> | 2024-03-19 17:38:33 +0100 |
commit | 6205466512d4b94d1e507a77ab2151425790d29f (patch) | |
tree | b4d2154e10892009f7e0ac35e0b9f5fdcf277a62 /.style.yapf | |
parent | 9f2609de09eb6299548e4c56b0f325361c5ad781 (diff) |
rpc: "addpeeraddress tried" return error on failure
When trying to add an address to the IP address manager tried table,
it's first added to the new table and then moved to the tried table.
Previously, adding a conflicting address to the address manager's
tried table with test-only `addpeeraddress tried=true` RPC would
return `{ "success": true }`. However, the address would not be added
to the tried table, but would remain in the new table. This caused,
e.g., issue 28964.
This is fixed by returning `{ "success": false, "error":
"failed-adding-to-tried" }` for failed tried table additions. Since
the address remaining in the new table can't be removed (the address
manager interface does not support removing addresses at the moment
and adding this seems to be a bigger effort), an error message is
returned. This indicates to a user why the RPC failed and allows
accounting for the extra address in the new table.
Also:
To check the number of addresses in each addrman table,
the addrman checks were re-run and the log output of this check
was asserted. Ideally, logs shouldn't be used as an interface
in automated tests. To avoid asserting the logs, use the getaddrmaninfo
and getrawaddrman RPCs (which weren't implemented when the test was added).
Removing the "getnodeaddress" calls would also remove the addrman checks
from the test, which could reduce the test coverage. To avoid this,
these are kept.
Diffstat (limited to '.style.yapf')
0 files changed, 0 insertions, 0 deletions