MCPcopy Create free account
hub / github.com/ElementsProject/elements / AcceptConnection

Method AcceptConnection

src/net.cpp:1146–1172  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

1144}
1145
1146void CConnman::AcceptConnection(const ListenSocket& hListenSocket) {
1147 struct sockaddr_storage sockaddr;
1148 socklen_t len = sizeof(sockaddr);
1149 auto sock = hListenSocket.sock->Accept((struct sockaddr*)&sockaddr, &len);
1150 CAddress addr;
1151
1152 if (!sock) {
1153 const int nErr = WSAGetLastError();
1154 if (nErr != WSAEWOULDBLOCK) {
1155 LogPrintf("socket error accept failed: %s\n", NetworkErrorString(nErr));
1156 }
1157 return;
1158 }
1159
1160 if (!addr.SetSockAddr((const struct sockaddr*)&sockaddr)) {
1161 LogPrintLevel(BCLog::Level::Warning, BCLog::NET, "Unknown socket family\n");
1162 } else {
1163 addr = CAddress{MaybeFlipIPv6toCJDNS(addr), NODE_NONE};
1164 }
1165
1166 const CAddress addr_bind{MaybeFlipIPv6toCJDNS(GetBindAddress(sock->Get())), NODE_NONE};
1167
1168 NetPermissionFlags permissionFlags = NetPermissionFlags::None;
1169 hListenSocket.AddSocketPermissionFlags(permissionFlags);
1170
1171 CreateNodeFromAcceptedSocket(std::move(sock), permissionFlags, addr_bind, addr);
1172}
1173
1174void CConnman::CreateNodeFromAcceptedSocket(std::unique_ptr<Sock>&& sock,
1175 NetPermissionFlags permissionFlags,

Callers

nothing calls this directly

Calls 7

NetworkErrorStringFunction · 0.85
MaybeFlipIPv6toCJDNSFunction · 0.85
GetBindAddressFunction · 0.85
SetSockAddrMethod · 0.80
AcceptMethod · 0.45
GetMethod · 0.45

Tested by

no test coverage detected