mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-12-06 18:53:21 +01:00
Merge bitcoin/bitcoin#31022: test: Add mockable steady clock, tests for PCP and NATPMP implementations
0f716f2889qa: cover PROTOCOL_ERROR variant in PCP unit tests (Antoine Poinsot)fc700bb47ftest: Add tests for PCP and NATPMP implementations (laanwj)caf9521033net: Use mockable steady clock in PCP implementation (laanwj)03648321ecutil: Add mockable steady_clock (laanwj)ab1d3ece02net: Add optional length checking to CService::SetSockAddr (laanwj) Pull request description: Add a NodeSteadyClock, a steady_clock that can be mocked with millisecond precision. Use this in the PCP implementation. Then add a mock for a simple scriptable UDP server,, which is used to test various code paths (including successful mappings, timeouts and errors) in the PCP and NATPMP implementations. Includes "net: Add optional length checking to CService::SetSockAddr" from #31014 as a prerequisite. ACKs for top commit: darosior: re-ACK0f716f2889i-am-yuvi: Concept ACK0f716f2889achow101: ACK0f716f2889Tree-SHA512: 6f91b24e6fe46a3fded7a13972efd77c98e6ef235f8898e4ae44068c5df32d1cdabb22cb66c351b338dc98cb2073b624e43607a28107f4999302bfbe7a138229
This commit is contained in:
@@ -387,7 +387,7 @@ static CAddress GetBindAddress(const Sock& sock)
|
||||
struct sockaddr_storage sockaddr_bind;
|
||||
socklen_t sockaddr_bind_len = sizeof(sockaddr_bind);
|
||||
if (!sock.GetSockName((struct sockaddr*)&sockaddr_bind, &sockaddr_bind_len)) {
|
||||
addr_bind.SetSockAddr((const struct sockaddr*)&sockaddr_bind);
|
||||
addr_bind.SetSockAddr((const struct sockaddr*)&sockaddr_bind, sockaddr_bind_len);
|
||||
} else {
|
||||
LogPrintLevel(BCLog::NET, BCLog::Level::Warning, "getsockname failed\n");
|
||||
}
|
||||
@@ -1746,7 +1746,7 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
|
||||
return;
|
||||
}
|
||||
|
||||
if (!addr.SetSockAddr((const struct sockaddr*)&sockaddr)) {
|
||||
if (!addr.SetSockAddr((const struct sockaddr*)&sockaddr, len)) {
|
||||
LogPrintLevel(BCLog::NET, BCLog::Level::Warning, "Unknown socket family\n");
|
||||
} else {
|
||||
addr = CAddress{MaybeFlipIPv6toCJDNS(addr), NODE_NONE};
|
||||
|
||||
Reference in New Issue
Block a user