From f6c267db3be2d7077fd2bdbd34860eba838dea99 Mon Sep 17 00:00:00 2001 From: Vasil Dimov Date: Tue, 24 Nov 2020 15:36:27 +0100 Subject: [PATCH] net: avoid unnecessary GetBindAddress() call Our local (bind) address is already saved in `CNode::addrBind` and there is no need to re-retrieve it again with `GetBindAddress()`. Also, for I2P connections `CNode::addrBind` would contain our I2P address, but `GetBindAddress()` would return something like `127.0.0.1:RANDOM_PORT`. --- src/net.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/src/net.cpp b/src/net.cpp index 6109fc4e5a5..d03e3cac37f 100644 --- a/src/net.cpp +++ b/src/net.cpp @@ -2606,9 +2606,7 @@ std::vector CConnman::GetAddresses(size_t max_addresses, size_t max_pc std::vector CConnman::GetAddresses(CNode& requestor, size_t max_addresses, size_t max_pct) { - SOCKET socket; - WITH_LOCK(requestor.cs_hSocket, socket = requestor.hSocket); - auto local_socket_bytes = GetBindAddress(socket).GetAddrBytes(); + auto local_socket_bytes = requestor.addrBind.GetAddrBytes(); uint64_t cache_id = GetDeterministicRandomizer(RANDOMIZER_ID_ADDRCACHE) .Write(requestor.addr.GetNetwork()) .Write(local_socket_bytes.data(), local_socket_bytes.size())