diff --git a/authd/providers/blacklist.c b/authd/providers/blacklist.c index e0278a20..be1b194d 100644 --- a/authd/providers/blacklist.c +++ b/authd/providers/blacklist.c @@ -38,6 +38,7 @@ */ #include "authd.h" +#include "defaults.h" #include "provider.h" #include "notice.h" #include "stdinc.h" @@ -111,7 +112,7 @@ static void initiate_blacklist_dnsquery(struct blacklist *, struct auth_client * /* Variables */ static rb_dlink_list blacklist_list = { NULL, NULL, 0 }; -static int blacklist_timeout = 15; +static int blacklist_timeout = BLACKLIST_TIMEOUT_DEFAULT; /* private interfaces */ diff --git a/authd/providers/ident.c b/authd/providers/ident.c index 40b67f9b..f3733cea 100644 --- a/authd/providers/ident.c +++ b/authd/providers/ident.c @@ -25,6 +25,7 @@ */ #include "stdinc.h" +#include "defaults.h" #include "match.h" #include "authd.h" #include "notice.h" @@ -66,7 +67,7 @@ static void client_fail(struct auth_client *auth, ident_message message); static void client_success(struct auth_client *auth); static char * get_valid_ident(char *buf); -static int ident_timeout = 5; +static int ident_timeout = IDENT_TIMEOUT_DEFAULT; static bool ident_enable = true; diff --git a/authd/providers/opm.c b/authd/providers/opm.c index 3c53e77c..ce30e749 100644 --- a/authd/providers/opm.c +++ b/authd/providers/opm.c @@ -18,8 +18,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#include "rb_lib.h" #include "stdinc.h" +#include "rb_lib.h" +#include "defaults.h" #include "setup.h" #include "authd.h" #include "notice.h" @@ -94,7 +95,7 @@ static CNCB opm_connected; static void opm_cancel(struct auth_client *auth); static bool create_listener(const char *ip, uint16_t port); -static int opm_timeout = 10; +static int opm_timeout = OPM_TIMEOUT_DEFAULT; static bool opm_enable = false; #define LISTEN_IPV4 0 diff --git a/authd/providers/rdns.c b/authd/providers/rdns.c index 5583fd6e..d263415a 100644 --- a/authd/providers/rdns.c +++ b/authd/providers/rdns.c @@ -52,7 +52,7 @@ static void client_fail(struct auth_client *auth, dns_message message); static void client_success(struct auth_client *auth); static void dns_answer_callback(const char *res, bool status, query_type type, void *data); -static int rdns_timeout = 15; +static int rdns_timeout = RDNS_TIMEOUT_DEFAULT; static void dns_answer_callback(const char *res, bool status, query_type type, void *data) diff --git a/include/defaults.h b/include/defaults.h index 599b2611..4e36981d 100644 --- a/include/defaults.h +++ b/include/defaults.h @@ -32,10 +32,7 @@ #include "setup.h" -/* - * First, set other fd limits based on values from user - */ - +/* Below are the elements for default paths. */ typedef enum { IRCD_PATH_PREFIX, IRCD_PATH_MODULES, @@ -58,35 +55,42 @@ typedef enum { extern const char *ircd_paths[IRCD_PATH_COUNT]; -#define MAXCONNECTIONS 65535 /* default max connections if getrlimit doesn't work */ +/* The below are used as defaults if not found in the configuration file (or on ircd warm-up). + * Don't change these - edit the conf file instead. + */ +#define MAXCONNECTIONS 65535 /* default max connections if getrlimit doesn't work */ /* class {} default values */ -#define DEFAULT_SENDQ 20000000 /* default max SendQ */ -#define PORTNUM 6667 /* default outgoing portnum */ -#define DEFAULT_PINGFREQUENCY 120 /* Default ping frequency */ -#define DEFAULT_CONNECTFREQUENCY 600 /* Default connect frequency */ -#define TS_MAX_DELTA_MIN 10 /* min value for ts_max_delta */ -#define TS_MAX_DELTA_DEFAULT 600 /* default for ts_max_delta */ -#define TS_WARN_DELTA_MIN 10 /* min value for ts_warn_delta */ -#define TS_WARN_DELTA_DEFAULT 30 /* default for ts_warn_delta */ +#define DEFAULT_SENDQ 20000000 /* default max SendQ */ +#define PORTNUM 6667 /* default outgoing portnum */ +#define DEFAULT_PINGFREQUENCY 120 /* Default ping frequency */ +#define DEFAULT_CONNECTFREQUENCY 600 /* Default connect frequency */ +#define TS_MAX_DELTA_MIN 10 /* min value for ts_max_delta */ +#define TS_MAX_DELTA_DEFAULT 600 /* default for ts_max_delta */ +#define TS_WARN_DELTA_MIN 10 /* min value for ts_warn_delta */ +#define TS_WARN_DELTA_DEFAULT 30 /* default for ts_warn_delta */ /* ServerInfo default values */ -#define NETWORK_NAME_DEFAULT "EFnet" /* default for network_name */ +#define NETWORK_NAME_DEFAULT "DefaultNet" /* default for network_name */ /* General defaults */ -#define CLIENT_FLOOD_DEFAULT 20 /* default for client_flood */ -#define CLIENT_FLOOD_MAX 2000 -#define CLIENT_FLOOD_MIN 10 -#define LINKS_DELAY_DEFAULT 300 -#define MAX_TARGETS_DEFAULT 4 /* default for max_targets */ -#define IDENT_TIMEOUT_DEFAULT 5 -#define MIN_JOIN_LEAVE_TIME 60 -#define MAX_JOIN_LEAVE_COUNT 25 -#define OPER_SPAM_COUNTDOWN 5 -#define JOIN_LEAVE_COUNT_EXPIRE_TIME 120 -#define MIN_SPAM_NUM 5 -#define MIN_SPAM_TIME 60 +#define CLIENT_FLOOD_DEFAULT 20 /* default for client_flood */ +#define CLIENT_FLOOD_MAX 2000 +#define CLIENT_FLOOD_MIN 10 +#define LINKS_DELAY_DEFAULT 300 +#define MAX_TARGETS_DEFAULT 4 /* default for max_targets */ +#define IDENT_TIMEOUT_DEFAULT 5 +#define BLACKLIST_TIMEOUT_DEFAULT 10 +#define OPM_TIMEOUT_DEFAULT 10 +#define RDNS_TIMEOUT_DEFAULT 5 +#define MIN_JOIN_LEAVE_TIME 60 +#define MAX_JOIN_LEAVE_COUNT 25 +#define OPER_SPAM_COUNTDOWN 5 +#define JOIN_LEAVE_COUNT_EXPIRE_TIME 120 +#define MIN_SPAM_NUM 5 +#define MIN_SPAM_TIME 60 /* * Directory paths and filenames for UNIX systems. * IRCD_PREFIX is set using ./configure --prefix, see INSTALL. + * Do not change these without corresponding changes in the build system. * * IRCD_PREFIX = prefix for all directories, * DPATH = root directory of installation, @@ -97,21 +101,25 @@ extern const char *ircd_paths[IRCD_PATH_COUNT]; * AUTOMODPATH = directory for autoloaded modules */ -#define DPATH IRCD_PREFIX -#define BINPATH IRCD_PREFIX "/bin/" -#define MODPATH MODULE_DIR -#define AUTOMODPATH MODULE_DIR "/autoload/" -#define ETCPATH ETC_DIR -#define LOGPATH LOG_DIR -#define UHPATH HELP_DIR "/users" -#define HPATH HELP_DIR "/opers" -#define SPATH BINPATH "/" PROGRAM_PREFIX "charybdis" /* ircd executable */ -#define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */ -#define MPATH ETCPATH "/ircd.motd" /* MOTD file */ -#define LPATH LOGPATH "/ircd.log" /* ircd logfile */ -#define PPATH PKGRUNDIR "/ircd.pid" /* pid file */ -#define OPATH ETCPATH "/opers.motd" /* oper MOTD file */ -#define DBPATH PKGLOCALSTATEDIR "/ban.db" /* bandb file */ +#define DPATH IRCD_PREFIX +#define BINPATH IRCD_PREFIX "/bin/" +#define MODPATH MODULE_DIR +#define AUTOMODPATH MODULE_DIR "/autoload/" +#define ETCPATH ETC_DIR +#define LOGPATH LOG_DIR +#define UHPATH HELP_DIR "/users" +#define HPATH HELP_DIR "/opers" +#define SPATH BINPATH "/" PROGRAM_PREFIX "/" BRANDING_NAME /* ircd executable */ +#define CPATH ETCPATH "/ircd.conf" /* ircd.conf file */ +#define MPATH ETCPATH "/ircd.motd" /* MOTD file */ +#define LPATH LOGPATH "/ircd.log" /* ircd logfile */ +#define PPATH PKGRUNDIR "/ircd.pid" /* pid file */ +#define OPATH ETCPATH "/opers.motd" /* oper MOTD file */ +#define DBPATH PKGLOCALSTATEDIR "/ban.db" /* bandb file */ + +/* Below are somewhat configurable settings (though it's probably a bad idea + * to blindly mess with them). If in any doubt, leave them alone. + */ /* HANGONGOODLINK and HANGONRETRYDELAY * Often net breaks for a short time and it's useful to try to @@ -122,25 +130,27 @@ extern const char *ircd_paths[IRCD_PATH_COUNT]; * (HANGONRETRYDELAY). This latter has to be long enough that the * other end of the connection has time to notice it broke too. */ -#define HANGONRETRYDELAY 60 /* Recommended value: 30-60 seconds */ -#define HANGONGOODLINK 3600 /* Recommended value: 30-60 minutes */ +#define HANGONRETRYDELAY 60 /* Recommended value: 30-60 seconds */ +#define HANGONGOODLINK 3600 /* Recommended value: 30-60 minutes */ /* KILLCHASETIMELIMIT - * Max time from the nickname change that still causes KILL * automatically to switch for the current nick of that user. (seconds) */ -#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */ +#define KILLCHASETIMELIMIT 90 /* Recommended value: 90 */ /* MAX_BUFFER * The amount of fds to reserve for clients exempt from limits * and dns lookups. */ -#define MAX_BUFFER 60 +#define MAX_BUFFER 60 -/* CHARYBDIS_SOMAXCONN +/* * Use SOMAXCONN if OS has it, otherwise use this value for the * listen(); backlog. 5 for AIX/SUNOS, 25 for other OSs. */ -#define CHARYBDIS_SOMAXCONN 25 +#ifndef SOMAXCONN +# define SOMAXCONN 25 +#endif #endif /* INCLUDED_defaults_h */ diff --git a/ircd/listener.c b/ircd/listener.c index 2757ad37..fd4c103d 100644 --- a/ircd/listener.c +++ b/ircd/listener.c @@ -153,14 +153,7 @@ show_ports(struct Client *source_p) * inetport - create a listener socket in the AF_INET or AF_INET6 domain, * bind it to the port given in 'port' and listen to it * returns true (1) if successful false (0) on error. - * - * If the operating system has a define for SOMAXCONN, use it, otherwise - * use CHARYBDIS_SOMAXCONN */ -#ifdef SOMAXCONN -#undef CHARYBDIS_SOMAXCONN -#define CHARYBDIS_SOMAXCONN SOMAXCONN -#endif static int inetport(struct Listener *listener) @@ -247,7 +240,7 @@ inetport(struct Listener *listener) return 0; } - if(rb_listen(F, CHARYBDIS_SOMAXCONN, listener->defer_accept)) + if(rb_listen(F, SOMAXCONN, listener->defer_accept)) { errstr = strerror(rb_get_sockerr(F)); sendto_realops_snomask(SNO_GENERAL, L_ALL,