Author: Isomer <isomer@coders.net>
[ircu2.10.12-pk.git] / ircd / listener.c
index a36d755fead990b8c6d201395bd5af401a935e15..fab23846c82ec68d7143fbfe812ac9329b54247e 100644 (file)
@@ -47,6 +47,9 @@
 #define INADDR_NONE ((unsigned int) 0xffffffff)
 #endif
 
+int tos_server = 0x08; // Low delay
+int tos_client = 0x08; // Low delay
+
 struct Listener* ListenerPollList = 0;
 
 static struct Listener* make_listener(int port, struct in_addr addr)
@@ -213,6 +216,12 @@ static int inetport(struct Listener* listener)
     close(fd);
     return 0;
   }
+  /*
+   * Set the TOS bits - this is nonfatal if it doesn't stick.
+   */
+  if (!os_set_tos(fd,(listener->server) ? tos_server : tos_client)) {
+    report_error(TOS_ERROR_MSG, get_listener_name(listener), errno);
+  }
   listener->fd = fd;
 
   return 1;