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

Function CreateTos

library/cpp/netliba/socket/creators.cpp:10–32  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

8
9namespace NNetlibaSocket {
10 void* CreateTos(const ui8 tos, void* buffer) {
11#ifdef _win_
12 *(int*)buffer = (int)tos;
13#else
14 // glibc bug: http://sourceware.org/bugzilla/show_bug.cgi?id=13500
15 memset(buffer, 0, TOS_BUFFER_SIZE);
16
17 msghdr dummy;
18 Zero(dummy);
19 dummy.msg_control = buffer;
20 dummy.msg_controllen = TOS_BUFFER_SIZE;
21
22 // TODO: in FreeBSD setting TOS for dual stack sockets does not affect ipv4 frames
23 cmsghdr* cmsg = CMSG_FIRSTHDR(&dummy);
24 cmsg->cmsg_level = IPPROTO_IPV6;
25 cmsg->cmsg_type = IPV6_TCLASS;
26 cmsg->cmsg_len = CMSG_LEN(sizeof(int));
27 memcpy(CMSG_DATA(cmsg), &tos, sizeof(tos)); // memcpy shut ups alias restrict warning
28
29 Y_ASSERT(CMSG_NXTHDR(&dummy, cmsg) == nullptr);
30#endif
31 return buffer;
32 }
33
34 TMsgHdr* AddSockAuxData(TMsgHdr* header, const ui8 tos, const sockaddr_in6& myAddr, void* buffer, size_t bufferSize) {
35#ifdef _win_

Callers 1

SendToMethod · 0.85

Calls 1

ZeroFunction · 0.85

Tested by

no test coverage detected