int optval = 1;
setsockopt(data_socket, SOL_SOCKET, SO_REUSEADDR, &optval, sizeof(optval));
setsockopt(data_socket, SOL_SOCKET, SO_REUSEPORT, &optval, sizeof(optval));
+#ifdef __APPLE__
+ optval = 0x10; // IPTOS_LOWDELAY
+ if(setsockopt(data_socket, IPPROTO_IP, IP_TOS, &optval, sizeof(optval))<0) {
+ perror("data_socket: SO_PRIORITY");
+ }
+#else
+ optval = 6;
+ if(setsockopt(data_socket, SOL_SOCKET, SO_PRIORITY, &optval, sizeof(optval))<0) {
+ perror("data_socket: SO_PRIORITY");
+ }
+#endif
// bind to the interface
if(bind(data_socket,(struct sockaddr*)&radio->info.network.interface_address,radio->info.network.interface_length)<0) {
if (setsockopt(tmp, SOL_SOCKET, SO_RCVBUF, &optval, sizeof(optval))<0) {
perror("data_socket: SO_RCVBUF");
}
+#ifdef __APPLE__
+ optval = 0x10; // IPTOS_LOWDELAY
+ if(setsockopt(tmp, IPPROTO_IP, IP_TOS, &optval, sizeof(optval))<0) {
+ perror("data_socket: SO_PRIORITY");
+ }
+#else
+ optval = 6;
+ if(setsockopt(tmp, SOL_SOCKET, SO_PRIORITY, &optval, sizeof(optval))<0) {
+ perror("data_socket: SO_PRIORITY");
+ }
+#endif
//
// set a timeout for receive
if (setsockopt(tmp, SOL_SOCKET, SO_RCVBUF, &optval, sizeof(optval))<0) {
perror("tcp_socket: SO_RCVBUF");
}
+#ifdef __APPLE__
+ optval = 0x10; // IPTOS_LOWDELAY
+ if(setsockopt(tmp, IPPROTO_IP, IP_TOS, &optval, sizeof(optval))<0) {
+ perror("data_socket: SO_PRIORITY");
+ }
+#else
+ optval = 6;
+ if(setsockopt(tmp, SOL_SOCKET, SO_PRIORITY, &optval, sizeof(optval))<0) {
+ perror("data_socket: SO_PRIORITY");
+ }
+#endif
tcp_socket=tmp;
g_print("TCP socket established: %d\n", tcp_socket);
}