Skip to content

Commit a8d6abb

Browse files
committed
net: change GetBindAddress() to take Sock argument
This avoids the direct call to `getsockname()` and allows mocking.
1 parent 748dbcd commit a8d6abb

File tree

1 file changed

+5
-5
lines changed

1 file changed

+5
-5
lines changed

src/net.cpp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -422,13 +422,13 @@ bool CConnman::CheckIncomingNonce(uint64_t nonce)
422422
}
423423

424424
/** Get the bind address for a socket as CAddress */
425-
static CAddress GetBindAddress(SOCKET sock)
425+
static CAddress GetBindAddress(const Sock& sock)
426426
{
427427
CAddress addr_bind;
428428
struct sockaddr_storage sockaddr_bind;
429429
socklen_t sockaddr_bind_len = sizeof(sockaddr_bind);
430-
if (sock != INVALID_SOCKET) {
431-
if (!getsockname(sock, (struct sockaddr*)&sockaddr_bind, &sockaddr_bind_len)) {
430+
if (sock.Get() != INVALID_SOCKET) {
431+
if (!sock.GetSockName((struct sockaddr*)&sockaddr_bind, &sockaddr_bind_len)) {
432432
addr_bind.SetSockAddr((const struct sockaddr*)&sockaddr_bind);
433433
} else {
434434
LogPrintLevel(BCLog::NET, BCLog::Level::Warning, "getsockname failed\n");
@@ -540,7 +540,7 @@ CNode* CConnman::ConnectNode(CAddress addrConnect, const char *pszDest, bool fCo
540540
NodeId id = GetNewNodeId();
541541
uint64_t nonce = GetDeterministicRandomizer(RANDOMIZER_ID_LOCALHOSTNONCE).Write(id).Finalize();
542542
if (!addr_bind.IsValid()) {
543-
addr_bind = GetBindAddress(sock->Get());
543+
addr_bind = GetBindAddress(*sock);
544544
}
545545
CNode* pnode = new CNode(id,
546546
nLocalServices,
@@ -1154,7 +1154,7 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
11541154
addr = CAddress{MaybeFlipIPv6toCJDNS(addr), NODE_NONE};
11551155
}
11561156

1157-
const CAddress addr_bind{MaybeFlipIPv6toCJDNS(GetBindAddress(sock->Get())), NODE_NONE};
1157+
const CAddress addr_bind{MaybeFlipIPv6toCJDNS(GetBindAddress(*sock)), NODE_NONE};
11581158

11591159
NetPermissionFlags permissionFlags = NetPermissionFlags::None;
11601160
hListenSocket.AddSocketPermissionFlags(permissionFlags);

0 commit comments

Comments
 (0)