diff options
author | laanwj <126646+laanwj@users.noreply.github.com> | 2022-06-21 23:55:37 +0200 |
---|---|---|
committer | laanwj <126646+laanwj@users.noreply.github.com> | 2022-06-22 00:00:43 +0200 |
commit | c3a41ad980cc5149de3f9ec8414962c183b1fed9 (patch) | |
tree | adabff42c05c90533cc42a4dd5c68e4d2f0778f3 /src/test | |
parent | 34869114a72435b9d8364385abaefed70d703fa8 (diff) | |
parent | 99b9e5f3a9fa29bbc1e45fc958470fbcc207ef23 (diff) |
Merge bitcoin/bitcoin#25314: p2p: always set nTime for self-advertisements
99b9e5f3a9fa29bbc1e45fc958470fbcc207ef23 p2p: always set nTime for self-advertisements (Martin Zumsande)
Pull request description:
This logic was recently changed in https://github.com/bitcoin/bitcoin/commit/0cfc0cd32239d3c08d2121e028b297022450b320 to overwrite `addrLocal` with the address they gave us when self-advertising to an inbound peer. But if we don't also change `nTime` again from the default `TIME_INIT`, our peer will not relay our advertised address any further.
ACKs for top commit:
naumenkogs:
ACK 99b9e5f3a9fa29bbc1e45fc958470fbcc207ef23
laanwj:
Code review ACK 99b9e5f3a9fa29bbc1e45fc958470fbcc207ef23
vasild:
ACK 99b9e5f3a9fa29bbc1e45fc958470fbcc207ef23
Tree-SHA512: 4c7ea51cc77ddaa4b3537962ad2ad085f7ef5322982d3b1f5baecb852719eb99dd578436ca63432cb6b0a4fbd8b59fca793caf326c4663a4d6f34301e8146aa2
Diffstat (limited to 'src/test')
-rw-r--r-- | src/test/net_tests.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/test/net_tests.cpp b/src/test/net_tests.cpp index e7c01bd6d0..115c4b9b24 100644 --- a/src/test/net_tests.cpp +++ b/src/test/net_tests.cpp @@ -675,10 +675,13 @@ BOOST_AUTO_TEST_CASE(get_local_addr_for_peer_port) const uint16_t bind_port = 20001; m_node.args->ForceSetArg("-bind", strprintf("3.4.5.6:%u", bind_port)); + const uint32_t current_time = static_cast<uint32_t>(GetAdjustedTime()); + SetMockTime(current_time); + // Our address:port as seen from the peer, completely different from the above. in_addr peer_us_addr; peer_us_addr.s_addr = htonl(0x02030405); - const CAddress peer_us{CService{peer_us_addr, 20002}, NODE_NETWORK}; + const CAddress peer_us{CService{peer_us_addr, 20002}, NODE_NETWORK, current_time}; // Create a peer with a routable IPv4 address (outbound). in_addr peer_out_in_addr; @@ -699,7 +702,7 @@ BOOST_AUTO_TEST_CASE(get_local_addr_for_peer_port) // Without the fix peer_us:8333 is chosen instead of the proper peer_us:bind_port. auto chosen_local_addr = GetLocalAddrForPeer(&peer_out); BOOST_REQUIRE(chosen_local_addr); - const CService expected{peer_us_addr, bind_port}; + const CAddress expected{CService{peer_us_addr, bind_port}, NODE_NETWORK, current_time}; BOOST_CHECK(*chosen_local_addr == expected); // Create a peer with a routable IPv4 address (inbound). |