From 5c86a7860ab913b137c583e9a8608ad71f0878bd Mon Sep 17 00:00:00 2001 From: Michael Poole Date: Tue, 12 Jul 2005 02:13:10 +0000 Subject: [PATCH] Localize FD_SETSIZE manipulation to engine_select.c. git-svn-id: file:///home/klmitch/undernet-ircu/undernet-ircu-svn/ircu2/trunk@1442 c9e4aea6-c8fd-4c43-8297-357d70d61c8c --- ChangeLog | 11 +++++++++++ include/sys.h | 7 ------- ircd/engine_select.c | 29 ++++++++++++++++++++++------- ircd/s_bsd.c | 22 ---------------------- 4 files changed, 33 insertions(+), 36 deletions(-) diff --git a/ChangeLog b/ChangeLog index ec391ab..a468cb2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,14 @@ +2005-07-11 Reed Loden + + * include/sys.h: Move FD_SETSIZE redefinition to engine_select.c. + + * ircd/s_bsd.c: Move FD_SETSIZE sanity check to engine_select.c + Remove unused #include . + + * ircd/engine_select.c: Put FD_SETSIZE redefinition and sanity + checks here, since they are not used elsewhere in the daemon. + [Order slightly changed by Michael Poole to compile.] + 2005-07-03 Michael Poole * ircd/convert-conf.c: New file. diff --git a/include/sys.h b/include/sys.h index 7faef89..f3845e0 100644 --- a/include/sys.h +++ b/include/sys.h @@ -28,13 +28,6 @@ */ #define MAXCLIENTS (MAXCONNECTIONS-24) -/* Define FD_SETSIZE to what we want before including sys/types.h on BSD */ -#if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__bsdi__) -#if ((!defined(USE_POLL)) && (!defined(FD_SETSIZE))) -#define FD_SETSIZE ((MAXCONNECTIONS)+4) -#endif -#endif - #define IRCD_MAX(a, b) ((a) > (b) ? (a) : (b)) #define IRCD_MIN(a, b) ((a) < (b) ? (a) : (b)) diff --git a/ircd/engine_select.c b/ircd/engine_select.c index 205283c..efb38c2 100644 --- a/ircd/engine_select.c +++ b/ircd/engine_select.c @@ -22,19 +22,19 @@ */ #include "config.h" -#include "ircd_events.h" - -#include "ircd.h" -#include "ircd_log.h" -#include "s_debug.h" - /* On BSD, define FD_SETSIZE to what we want before including sys/types.h */ #if defined(__FreeBSD__) || defined(__NetBSD__) || defined(__bsdi__) # if !defined(FD_SETSIZE) -# define FD_SETSIZE MAXCONNECTIONS +# define FD_SETSIZE ((MAXCONNECTIONS)+4) # endif #endif +#include "ircd_events.h" + +#include "ircd.h" +#include "ircd_log.h" +#include "s_debug.h" + /* #include -- Now using assert in ircd_log.h */ #include #include /* needed for bzero() on OS X */ @@ -44,6 +44,21 @@ #include #include +#if FD_SETSIZE < (MAXCONNECTIONS + 4) +/* + * Sanity check + * + * All operating systems work when MAXCONNECTIONS <= 252. + * Most operating systems work when MAXCONNECTIONS <= 1020 and FD_SETSIZE is + * updated correctly in the system headers (on BSD systems sys/types.h might + * have abruptly redefined it so the check is still done), you might + * already need to recompile your kernel. + * For larger FD_SETSIZE your mileage may vary (kernel patches may be needed). + * The check is _NOT_ done if we will not use FD_SETS at all (USE_POLL) + */ +# error FD_SETSIZE is too small or MAXCONNECTIONS too large. +#endif + #define SELECT_ERROR_THRESHOLD 20 /**< after 20 select errors, restart */ #define ERROR_EXPIRE_TIME 3600 /**< expire errors after an hour */ diff --git a/ircd/s_bsd.c b/ircd/s_bsd.c index 2a57382..6ce4215 100644 --- a/ircd/s_bsd.c +++ b/ircd/s_bsd.c @@ -71,10 +71,6 @@ #include #include -#ifdef USE_POLL -#include -#endif /* USE_POLL */ - /** Array of my own clients, indexed by file descriptor. */ struct Client* LocalClientArray[MAXCONNECTIONS]; /** Maximum file descriptor in current use. */ @@ -108,24 +104,6 @@ const char* const TOS_ERROR_MSG = "error setting TOS for %s: %s"; static void client_sock_callback(struct Event* ev); static void client_timer_callback(struct Event* ev); -#if !defined(USE_POLL) -#if FD_SETSIZE < (MAXCONNECTIONS + 4) -/* - * Sanity check - * - * All operating systems work when MAXCONNECTIONS <= 252. - * Most operating systems work when MAXCONNECTIONS <= 1020 and FD_SETSIZE is - * updated correctly in the system headers (on BSD systems our sys.h has - * defined FD_SETSIZE to MAXCONNECTIONS+4 before including the system's headers - * but sys/types.h might have abruptly redefined it so the check is still - * done), you might already need to recompile your kernel. - * For larger FD_SETSIZE your mileage may vary (kernel patches may be needed). - * The check is _NOT_ done if we will not use FD_SETS at all (USE_POLL) - */ -#error "FD_SETSIZE is too small or MAXCONNECTIONS too large." -#endif -#endif - /* * Cannot use perror() within daemon. stderr is closed in -- 2.20.1