@@ -1120,10 +1120,10 @@ void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
1120
1120
NetPermissionFlags permissionFlags = NetPermissionFlags::None;
1121
1121
hListenSocket.AddSocketPermissionFlags (permissionFlags);
1122
1122
1123
- CreateNodeFromAcceptedSocket (sock-> Release ( ), permissionFlags, addr_bind, addr);
1123
+ CreateNodeFromAcceptedSocket (std::move (sock ), permissionFlags, addr_bind, addr);
1124
1124
}
1125
1125
1126
- void CConnman::CreateNodeFromAcceptedSocket (SOCKET hSocket ,
1126
+ void CConnman::CreateNodeFromAcceptedSocket (std::unique_ptr<Sock>&& sock ,
1127
1127
NetPermissionFlags permissionFlags,
1128
1128
const CAddress& addr_bind,
1129
1129
const CAddress& addr)
@@ -1149,27 +1149,24 @@ void CConnman::CreateNodeFromAcceptedSocket(SOCKET hSocket,
1149
1149
1150
1150
if (!fNetworkActive ) {
1151
1151
LogPrint (BCLog::NET, " connection from %s dropped: not accepting new connections\n " , addr.ToString ());
1152
- CloseSocket (hSocket);
1153
1152
return ;
1154
1153
}
1155
1154
1156
- if (!IsSelectableSocket (hSocket ))
1155
+ if (!IsSelectableSocket (sock-> Get () ))
1157
1156
{
1158
1157
LogPrintf (" connection from %s dropped: non-selectable socket\n " , addr.ToString ());
1159
- CloseSocket (hSocket);
1160
1158
return ;
1161
1159
}
1162
1160
1163
1161
// According to the internet TCP_NODELAY is not carried into accepted sockets
1164
1162
// on all platforms. Set it again here just to be sure.
1165
- SetSocketNoDelay (hSocket );
1163
+ SetSocketNoDelay (sock-> Get () );
1166
1164
1167
1165
// Don't accept connections from banned peers.
1168
1166
bool banned = m_banman && m_banman->IsBanned (addr);
1169
1167
if (!NetPermissions::HasFlag (permissionFlags, NetPermissionFlags::NoBan) && banned)
1170
1168
{
1171
1169
LogPrint (BCLog::NET, " connection from %s dropped (banned)\n " , addr.ToString ());
1172
- CloseSocket (hSocket);
1173
1170
return ;
1174
1171
}
1175
1172
@@ -1178,7 +1175,6 @@ void CConnman::CreateNodeFromAcceptedSocket(SOCKET hSocket,
1178
1175
if (!NetPermissions::HasFlag (permissionFlags, NetPermissionFlags::NoBan) && nInbound + 1 >= nMaxInbound && discouraged)
1179
1176
{
1180
1177
LogPrint (BCLog::NET, " connection from %s dropped (discouraged)\n " , addr.ToString ());
1181
- CloseSocket (hSocket);
1182
1178
return ;
1183
1179
}
1184
1180
@@ -1187,7 +1183,6 @@ void CConnman::CreateNodeFromAcceptedSocket(SOCKET hSocket,
1187
1183
if (!AttemptToEvictConnection ()) {
1188
1184
// No connection to evict, disconnect the new connection
1189
1185
LogPrint (BCLog::NET, " failed to find an eviction candidate - connection dropped (full)\n " );
1190
- CloseSocket (hSocket);
1191
1186
return ;
1192
1187
}
1193
1188
}
@@ -1201,7 +1196,7 @@ void CConnman::CreateNodeFromAcceptedSocket(SOCKET hSocket,
1201
1196
}
1202
1197
1203
1198
const bool inbound_onion = std::find (m_onion_binds.begin (), m_onion_binds.end (), addr_bind) != m_onion_binds.end ();
1204
- CNode* pnode = new CNode (id, nodeServices, hSocket , addr, CalculateKeyedNetGroup (addr), nonce, addr_bind, " " , ConnectionType::INBOUND, inbound_onion);
1199
+ CNode* pnode = new CNode (id, nodeServices, sock-> Release () , addr, CalculateKeyedNetGroup (addr), nonce, addr_bind, " " , ConnectionType::INBOUND, inbound_onion);
1205
1200
pnode->AddRef ();
1206
1201
pnode->m_permissionFlags = permissionFlags;
1207
1202
pnode->m_prefer_evict = discouraged;
@@ -2329,7 +2324,7 @@ void CConnman::ThreadI2PAcceptIncoming()
2329
2324
continue ;
2330
2325
}
2331
2326
2332
- CreateNodeFromAcceptedSocket (conn.sock -> Release ( ), NetPermissionFlags::None,
2327
+ CreateNodeFromAcceptedSocket (std::move ( conn.sock ), NetPermissionFlags::None,
2333
2328
CAddress{conn.me , NODE_NONE}, CAddress{conn.peer , NODE_NONE});
2334
2329
}
2335
2330
}
0 commit comments