aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Zumsande <mzumsande@gmail.com>2022-09-01 18:26:55 -0400
committerMartin Zumsande <mzumsande@gmail.com>2022-09-19 11:06:43 -0400
commit68209a7b5c0326e14508d9cf749771605bd6ffe7 (patch)
tree76bc34ff99c0dbdb3ba9b41c7bcd52f5a729acc2
parenta8a9ed67cc447d204304ccfd844c45fd76486c6a (diff)
downloadbitcoin-68209a7b5c0326e14508d9cf749771605bd6ffe7.tar.xz
rpc: make addpeeraddress work with cjdns addresses
This allows us to add cjdns addresses to addrman for testing and debug purposes (if -cjdnsreachable is true)
-rw-r--r--src/net.h1
-rw-r--r--src/rpc/net.cpp3
2 files changed, 3 insertions, 1 deletions
diff --git a/src/net.h b/src/net.h
index 66a228b3ec..044701a339 100644
--- a/src/net.h
+++ b/src/net.h
@@ -164,6 +164,7 @@ bool SeenLocal(const CService& addr);
bool IsLocal(const CService& addr);
bool GetLocal(CService &addr, const CNetAddr *paddrPeer = nullptr);
CService GetLocalAddress(const CNetAddr& addrPeer);
+CService MaybeFlipIPv6toCJDNS(const CService& service);
extern bool fDiscover;
diff --git a/src/rpc/net.cpp b/src/rpc/net.cpp
index e221b3462d..d701a180ab 100644
--- a/src/rpc/net.cpp
+++ b/src/rpc/net.cpp
@@ -947,7 +947,8 @@ static RPCHelpMan addpeeraddress()
bool success{false};
if (LookupHost(addr_string, net_addr, false)) {
- CAddress address{{net_addr, port}, ServiceFlags{NODE_NETWORK | NODE_WITNESS}};
+ CService service{net_addr, port};
+ CAddress address{MaybeFlipIPv6toCJDNS(service), ServiceFlags{NODE_NETWORK | NODE_WITNESS}};
address.nTime = Now<NodeSeconds>();
// The source address is set equal to the address. This is equivalent to the peer
// announcing itself.