Author: Isomer <isomer@coders.net>
authorPerry Lorier <isomer@undernet.org>
Sat, 16 Dec 2000 12:56:07 +0000 (12:56 +0000)
committerPerry Lorier <isomer@undernet.org>
Sat, 16 Dec 2000 12:56:07 +0000 (12:56 +0000)
Log message:

Added TOS twiddling to Kev's "feature" subsystem.  It compiles, who knows
if it will run...

git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@346 c9e4aea6-c8fd-4c43-8297-357d70d61c8c

ChangeLog
Makefile.in
include/ircd_features.h
ircd/ircd_features.c
ircd/listener.c

index 0521a22604fa84e791dabc79df2652e57e9e85e7..8d6597da5ad66494e80913677bdc5c1b032fb0fd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,6 @@
+2000-12-17  Isomer <Isomer@coders.net>
+       * ircd/listener.c: added support for TOS twiddling as a 'feature'.
+
 2000-12-17  Isomer <Isomer@coders.net>
        * ircd/os_linux.c: add TOS stuffs
 
index 38ec813d543f9ec94b66f554e811e98a45cf22f7..f511a011679ae7bdba4454a030657f3adc0c5259 100644 (file)
@@ -29,7 +29,7 @@ AWK=@AWK@
 
 all: build
 
-.PHONY: server build depend install config update diff patch export
+.PHONY: server build depend install config update diff patch export update
 # Some versions of make give a warning when this is empty:
 .SUFFIXES: .dummy
 
@@ -122,3 +122,7 @@ indent:
        @test "`indent --version`" = "GNU indent 2.1.0" || \
          (echo "You need GNU indent 2.1.0; See doc/readme.indent" && exit -1);
        VERSION_CONTROL=none indent include/*.h ircd/*.c
+
+# do a cvs update
+update:
+       cvs -z9 update
\ No newline at end of file
index 2335fa6900dedac87a1ee34f07f43aac4b3ebea2..e506df6fe9e260b1ce9a2da4739527237be4a389 100644 (file)
@@ -34,6 +34,8 @@ enum Feature {
   FEAT_SHOW_ALL_INVISIBLE_USERS,
   FEAT_UNLIMIT_OPER_QUERY,
   FEAT_LOCAL_KILL_ONLY,
+  FEAT_TOS_SERVER,
+  FEAT_TOS_CLIENT,
   FEAT_CONFIG_OPERCMDS,
 
   FEAT_OPER_KILL,
index 7e6a62d8e13b560bbffddec10ff91f83eb19cbdc..5b45b7de158938bd54345d1288d526e8c5edebdb 100644 (file)
@@ -227,6 +227,8 @@ static struct FeatureDesc {
   F_B(SHOW_ALL_INVISIBLE_USERS, 1),
   F_B(UNLIMIT_OPER_QUERY, 0),
   F_B(LOCAL_KILL_ONLY, 0),
+  F_B(TOS_SERVER,0x08),
+  F_B(TOS_CLIENT,0x08),
   F_B(CONFIG_OPERCMDS, 1), /* XXX change default before release */
 
   F_B(OPER_KILL, 1),
index fab23846c82ec68d7143fbfe812ac9329b54247e..921678eabcf86b4cde40f47c58b96fe010794d01 100644 (file)
@@ -22,6 +22,7 @@
 #include "client.h"
 #include "ircd.h"
 #include "ircd_alloc.h"
+#include "ircd_features.h"
 #include "ircd_osdep.h"
 #include "ircd_reply.h"
 #include "ircd_string.h"
@@ -47,9 +48,6 @@
 #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)
@@ -219,7 +217,7 @@ static int inetport(struct Listener* listener)
   /*
    * Set the TOS bits - this is nonfatal if it doesn't stick.
    */
-  if (!os_set_tos(fd,(listener->server) ? tos_server : tos_client)) {
+  if (!os_set_tos(fd,feature_int((listener->server)?FEAT_TOS_SERVER : FEAT_TOS_CLIENT))) {
     report_error(TOS_ERROR_MSG, get_listener_name(listener), errno);
   }
   listener->fd = fd;