Enable QOS prioritization on macOS

This commit is contained in:
Cameron Gutman
2020-03-29 15:21:26 -07:00
parent 5503534362
commit 512b3f26f9
3 changed files with 10 additions and 0 deletions
+1
View File
@@ -64,6 +64,7 @@ enet_host_create (int addressFamily, const ENetAddress * address, size_t peerCou
enet_socket_set_option (host -> socket, ENET_SOCKOPT_NONBLOCK, 1);
enet_socket_set_option (host -> socket, ENET_SOCKOPT_RCVBUF, ENET_HOST_RECEIVE_BUFFER_SIZE);
enet_socket_set_option (host -> socket, ENET_SOCKOPT_SNDBUF, ENET_HOST_SEND_BUFFER_SIZE);
enet_socket_set_option (host -> socket, ENET_SOCKOPT_QOS, 1);
if (address != NULL && enet_socket_get_address (host -> socket, & host -> address) < 0)
host -> address = * address;
+1
View File
@@ -62,6 +62,7 @@ typedef enum _ENetSocketOption
ENET_SOCKOPT_SNDTIMEO,
ENET_SOCKOPT_ERROR,
ENET_SOCKOPT_NODELAY,
ENET_SOCKOPT_QOS,
} ENetSocketOption;
typedef enum _ENetSocketShutdown
+8
View File
@@ -319,6 +319,14 @@ enet_socket_set_option (ENetSocket socket, ENetSocketOption option, int value)
result = setsockopt (socket, IPPROTO_TCP, TCP_NODELAY, (char *) & value, sizeof (int));
break;
case ENET_SOCKOPT_QOS:
#if defined(SO_NET_SERVICE_TYPE)
// iOS/macOS
value = value ? NET_SERVICE_TYPE_VO : NET_SERVICE_TYPE_BE;
result = setsockopt (socket, SOL_SOCKET, SO_NET_SERVICE_TYPE, (char *) & value, sizeof (int));
#endif
break;
default:
break;
}