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

Method IsFragmentationForbiden

library/cpp/netliba/socket/socket.cpp:279–297  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

277 }
278
279 bool TAbstractSocket::IsFragmentationForbiden() {
280#if defined(_win_)
281 DWORD flag = 0;
282 socklen_t sz = sizeof(flag);
283 Y_ABORT_UNLESS(GetSockOpt(IPPROTO_IP, IP_DONTFRAGMENT, (char*)&flag, &sz) == 0, "");
284 return flag;
285#elif defined(_linux_)
286 int flag = 0;
287 socklen_t sz = sizeof(flag);
288 Y_ABORT_UNLESS(GetSockOpt(IPPROTO_IPV6, IPV6_MTU_DISCOVER, (char*)&flag, &sz) == 0, "");
289 return flag == IPV6_PMTUDISC_DO;
290#elif !defined(_darwin_)
291 int flag = 0;
292 socklen_t sz = sizeof(flag);
293 Y_ABORT_UNLESS(GetSockOpt(IPPROTO_IPV6, IPV6_DONTFRAG, (char*)&flag, &sz) == 0, "");
294 return flag;
295#endif
296 return false;
297 }
298
299 void TAbstractSocket::ForbidFragmentation() {
300 // do not fragment ping packets

Callers

nothing calls this directly

Calls 1

GetSockOptFunction · 0.85

Tested by

no test coverage detected