MCPcopy Create free account
hub / github.com/catboost/catboost / IsHostUnreachable

Method IsHostUnreachable

library/cpp/netliba/v6/udp_socket.cpp:269–291  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

267 }
268
269 bool TNetSocket::IsHostUnreachable() {
270#ifdef _win_
271 char buf[10000];
272 sockaddr_in6 fromAddress;
273
274 const NNetlibaSocket::TIoVec v = NNetlibaSocket::CreateIoVec(buf, Y_ARRAY_SIZE(buf));
275 NNetlibaSocket::TMsgHdr hdr = NNetlibaSocket::CreateRecvMsgHdr(&fromAddress, v);
276
277 const ssize_t rv = s->RecvMsg(&hdr, 0);
278 if (rv < 0) {
279 int err = WSAGetLastError();
280 if (err == WSAECONNRESET)
281 return true;
282 }
283#else
284 int err = 0;
285 socklen_t bufSize = sizeof(err);
286 s->GetSockOpt(SOL_SOCKET, SO_ERROR, (char*)&err, &bufSize);
287 if (err == ECONNREFUSED)
288 return true;
289#endif
290 return false;
291 }
292}

Callers 1

TestMethod · 0.45

Calls 4

CreateIoVecFunction · 0.85
CreateRecvMsgHdrFunction · 0.85
GetSockOptMethod · 0.80
RecvMsgMethod · 0.45

Tested by 1

TestMethod · 0.36