@@ -1098,10 +1098,10 @@ bool CConnman::AttemptToEvictConnection()
1098
1098
void CConnman::AcceptConnection (const ListenSocket& hListenSocket) {
1099
1099
struct sockaddr_storage sockaddr;
1100
1100
socklen_t len = sizeof (sockaddr);
1101
- SOCKET hSocket = accept ( hListenSocket.socket , (struct sockaddr *)&sockaddr, &len);
1101
+ auto sock = hListenSocket.sock -> Accept ( (struct sockaddr *)&sockaddr, &len);
1102
1102
CAddress addr;
1103
1103
1104
- if (hSocket == INVALID_SOCKET ) {
1104
+ if (!sock ) {
1105
1105
const int nErr = WSAGetLastError ();
1106
1106
if (nErr != WSAEWOULDBLOCK) {
1107
1107
LogPrintf (" socket error accept failed: %s\n " , NetworkErrorString (nErr));
@@ -1115,12 +1115,12 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
1115
1115
addr = CAddress{MaybeFlipIPv6toCJDNS (addr), NODE_NONE};
1116
1116
}
1117
1117
1118
- const CAddress addr_bind{MaybeFlipIPv6toCJDNS (GetBindAddress (hSocket )), NODE_NONE};
1118
+ const CAddress addr_bind{MaybeFlipIPv6toCJDNS (GetBindAddress (sock-> Get () )), NODE_NONE};
1119
1119
1120
1120
NetPermissionFlags permissionFlags = NetPermissionFlags::None;
1121
1121
hListenSocket.AddSocketPermissionFlags (permissionFlags);
1122
1122
1123
- CreateNodeFromAcceptedSocket (hSocket , permissionFlags, addr_bind, addr);
1123
+ CreateNodeFromAcceptedSocket (sock-> Release () , permissionFlags, addr_bind, addr);
1124
1124
}
1125
1125
1126
1126
void CConnman::CreateNodeFromAcceptedSocket (SOCKET hSocket,
@@ -1359,7 +1359,7 @@ bool CConnman::GenerateSelectSet(const std::vector<CNode*>& nodes,
1359
1359
std::set<SOCKET>& error_set)
1360
1360
{
1361
1361
for (const ListenSocket& hListenSocket : vhListenSocket) {
1362
- recv_set.insert (hListenSocket.socket );
1362
+ recv_set.insert (hListenSocket.sock -> Get () );
1363
1363
}
1364
1364
1365
1365
for (CNode* pnode : nodes) {
@@ -1640,7 +1640,7 @@ void CConnman::SocketHandlerListening(const std::set<SOCKET>& recv_set)
1640
1640
if (interruptNet) {
1641
1641
return ;
1642
1642
}
1643
- if (recv_set.count (listen_socket.socket ) > 0 ) {
1643
+ if (recv_set.count (listen_socket.sock -> Get () ) > 0 ) {
1644
1644
AcceptConnection (listen_socket);
1645
1645
}
1646
1646
}
@@ -2391,7 +2391,7 @@ bool CConnman::BindListenPort(const CService& addrBind, bilingual_str& strError,
2391
2391
return false ;
2392
2392
}
2393
2393
2394
- vhListenSocket.push_back ( ListenSocket (sock-> Release ( ), permissions) );
2394
+ vhListenSocket.emplace_back ( std::move (sock), permissions);
2395
2395
return true ;
2396
2396
}
2397
2397
@@ -2700,15 +2700,6 @@ void CConnman::StopNodes()
2700
2700
DeleteNode (pnode);
2701
2701
}
2702
2702
2703
- // Close listening sockets.
2704
- for (ListenSocket& hListenSocket : vhListenSocket) {
2705
- if (hListenSocket.socket != INVALID_SOCKET) {
2706
- if (!CloseSocket (hListenSocket.socket )) {
2707
- LogPrintf (" CloseSocket(hListenSocket) failed with error %s\n " , NetworkErrorString (WSAGetLastError ()));
2708
- }
2709
- }
2710
- }
2711
-
2712
2703
for (CNode* pnode : m_nodes_disconnected) {
2713
2704
DeleteNode (pnode);
2714
2705
}
0 commit comments