Просмотр исходного кода

[util] Add a wrapper around setsockopt(...SO_PRIORITY...)

Works on Linux only

ref:a8e96f0b8612a3c9b10e4a6ece310cc27707bc67
sobols 3 лет назад
Родитель
Сommit
19935c21e7
2 измененных файлов с 10 добавлено и 0 удалено
  1. 9 0
      util/network/socket.cpp
  2. 1 0
      util/network/socket.h

+ 9 - 0
util/network/socket.cpp

@@ -423,6 +423,15 @@ void SetSocketToS(SOCKET s, int tos) {
     SetSocketToS(s, &addr, tos);
 }
 
+void SetSocketPriority(SOCKET s, int priority) {
+#if defined(SO_PRIORITY)
+    CheckedSetSockOpt(s, SOL_SOCKET, SO_PRIORITY, priority, "priority");
+#else
+    Y_UNUSED(s);
+    Y_UNUSED(priority);
+#endif
+}
+
 bool HasLocalAddress(SOCKET socket) {
     TOpaqueAddr localAddr;
     if (getsockname(socket, localAddr.MutableAddr(), localAddr.LenPtr()) != 0) {

+ 1 - 0
util/network/socket.h

@@ -116,6 +116,7 @@ void SetSocketToS(SOCKET s, int tos);
 void SetSocketToS(SOCKET s, const NAddr::IRemoteAddr* addr, int tos);
 int GetSocketToS(SOCKET s);
 int GetSocketToS(SOCKET s, const NAddr::IRemoteAddr* addr);
+void SetSocketPriority(SOCKET s, int priority);
 void SetTcpFastOpen(SOCKET s, int qlen);
 /**
  * Deprecated, consider using HasSocketDataToRead instead.