From d582107b33c3b154747a0a38f33963af7ad3c53f Mon Sep 17 00:00:00 2001 From: brain Date: Wed, 14 Dec 2005 10:51:18 +0000 Subject: Started moving of data into ServerConfig class git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@2393 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/channels.cpp | 32 ++----------------------- src/commands.cpp | 34 +-------------------------- src/dns.cpp | 1 + src/dnsqueue.cpp | 5 +--- src/helperfuncs.cpp | 11 +-------- src/inspircd_io.cpp | 4 +--- src/mode.cpp | 20 +--------------- src/modules.cpp | 32 +------------------------ src/socket.cpp | 3 --- src/userprocess.cpp | 68 ++++++++++++----------------------------------------- src/users.cpp | 4 ++-- src/xline.cpp | 47 +----------------------------------- 12 files changed, 27 insertions(+), 234 deletions(-) (limited to 'src') diff --git a/src/channels.cpp b/src/channels.cpp index ce4718410..573289db9 100644 --- a/src/channels.cpp +++ b/src/channels.cpp @@ -53,45 +53,17 @@ using namespace std; #define nspace std #endif +extern ServerConfig* Config; + extern int MODCOUNT; extern std::vector modules; extern std::vector factory; - -extern int LogLevel; -extern char ServerName[MAXBUF]; -extern char Network[MAXBUF]; -extern char ServerDesc[MAXBUF]; -extern char AdminName[MAXBUF]; -extern char AdminEmail[MAXBUF]; -extern char AdminNick[MAXBUF]; -extern char diepass[MAXBUF]; -extern char restartpass[MAXBUF]; -extern char motd[MAXBUF]; -extern char rules[MAXBUF]; -extern char list[MAXBUF]; -extern char PrefixQuit[MAXBUF]; -extern char DieValue[MAXBUF]; - -extern int debugging; extern int WHOWAS_STALE; extern int WHOWAS_MAX; -extern int DieDelay; extern time_t startup_time; -extern int NetBufferSize; -int MaxWhoResults; -extern time_t nb_start; - extern std::vector module_names; - extern int boundPortCount; -extern int portCount; - -extern int ports[MAXSOCKS]; - extern std::stringstream config_f; - -extern FILE *log_file; - extern time_t TIME; using namespace std; diff --git a/src/commands.cpp b/src/commands.cpp index 5cf042cda..aa1f02aab 100644 --- a/src/commands.cpp +++ b/src/commands.cpp @@ -63,53 +63,21 @@ using namespace std; #include "socketengine.h" extern SocketEngine* SE; +extern ServerConfig* Config; extern int MODCOUNT; extern std::vector modules; extern std::vector factory; - -extern int LogLevel; -extern char ServerName[MAXBUF]; -extern char Network[MAXBUF]; -extern char ServerDesc[MAXBUF]; -extern char AdminName[MAXBUF]; -extern char AdminEmail[MAXBUF]; -extern char AdminNick[MAXBUF]; -extern char diepass[MAXBUF]; -extern char restartpass[MAXBUF]; -extern char motd[MAXBUF]; -extern char rules[MAXBUF]; -extern char list[MAXBUF]; -extern char PrefixQuit[MAXBUF]; -extern char DieValue[MAXBUF]; - -extern int debugging; extern int WHOWAS_STALE; extern int WHOWAS_MAX; -extern int DieDelay; extern time_t startup_time; -extern int NetBufferSize; -extern int MaxWhoResults; -extern time_t nb_start; - -extern bool nofork; - extern time_t TIME; - extern std::vector module_names; - -extern char MyExecutable[1024]; extern int boundPortCount; extern int portCount; - extern int ports[MAXSOCKS]; - extern std::stringstream config_f; - - -extern FILE *log_file; - extern ClassVector Classes; const long duration_m = 60; diff --git a/src/dns.cpp b/src/dns.cpp index 3c4701ed6..5a70bb41d 100644 --- a/src/dns.cpp +++ b/src/dns.cpp @@ -40,6 +40,7 @@ using namespace std; #include "socketengine.h" extern SocketEngine* SE; +extern ServerConfig* Config; serverstats* stats; #define max(a,b) (a > b ? a : b) diff --git a/src/dnsqueue.cpp b/src/dnsqueue.cpp index 78be4d8f1..93d682012 100644 --- a/src/dnsqueue.cpp +++ b/src/dnsqueue.cpp @@ -43,7 +43,6 @@ using namespace std; #include #include #include -#include #include #include #include @@ -53,9 +52,7 @@ using namespace std; #include "socketengine.h" extern SocketEngine* SE; -typedef nspace::hash_map, irc::StrHashComp> user_hash; -extern user_hash clientlist; -extern char DNSServer[MAXBUF]; +extern ServerConfig* Config; class Lookup; diff --git a/src/helperfuncs.cpp b/src/helperfuncs.cpp index c6ff76523..97f423d3f 100644 --- a/src/helperfuncs.cpp +++ b/src/helperfuncs.cpp @@ -51,21 +51,12 @@ using namespace std; extern int MODCOUNT; extern std::vector modules; +extern ServerConfig *Config; extern time_t TIME; -extern bool nofork; extern char lowermap[255]; -extern char ServerName[MAXBUF]; -extern char Network[MAXBUF]; -extern char ServerDesc[MAXBUF]; -extern char list[MAXBUF]; - -extern int debugging; -extern int LogLevel; - extern std::stringstream config_f; -extern FILE *log_file; extern userrec* fd_ref_table[65536]; extern serverstats* stats; diff --git a/src/inspircd_io.cpp b/src/inspircd_io.cpp index e601ae496..53a95093a 100644 --- a/src/inspircd_io.cpp +++ b/src/inspircd_io.cpp @@ -31,12 +31,10 @@ using namespace std; #include "inspstring.h" #include "helperfuncs.h" -extern FILE *log_file; +extern ServerConfig *Config; extern int boundPortCount; extern int openSockfd[MAXSOCKS]; extern time_t TIME; -extern bool unlimitcore; -extern int MaxConn; std::vector include_stack; void WriteOpers(char* text, ...); diff --git a/src/mode.cpp b/src/mode.cpp index 82e38e355..d63ffcfb1 100644 --- a/src/mode.cpp +++ b/src/mode.cpp @@ -51,25 +51,7 @@ extern std::vector modules; extern std::vector factory; extern std::vector module_names; - -extern int LogLevel; -extern char ServerName[MAXBUF]; -extern char Network[MAXBUF]; -extern char ServerDesc[MAXBUF]; -extern char AdminName[MAXBUF]; -extern char AdminEmail[MAXBUF]; -extern char AdminNick[MAXBUF]; -extern char diepass[MAXBUF]; -extern char restartpass[MAXBUF]; -extern char motd[MAXBUF]; -extern char rules[MAXBUF]; -extern char list[MAXBUF]; -extern char PrefixQuit[MAXBUF]; -extern char DieValue[MAXBUF]; - -extern bool AllowHalfop; -extern bool AllowProtect; -extern bool AllowFounder; +extern ServerConfig* Config; extern time_t TIME; diff --git a/src/modules.cpp b/src/modules.cpp index ebd127556..5799289ef 100644 --- a/src/modules.cpp +++ b/src/modules.cpp @@ -50,55 +50,25 @@ using namespace std; #include "socketengine.h" extern SocketEngine* SE; +extern ServerConfig *Config; extern int MODCOUNT; extern std::vector modules; extern std::vector factory; - extern std::vector include_stack; - extern std::vector module_sockets; extern time_t TIME; - -extern int LogLevel; -extern char ServerName[MAXBUF]; -extern char Network[MAXBUF]; -extern char ServerDesc[MAXBUF]; -extern char AdminName[MAXBUF]; -extern char AdminEmail[MAXBUF]; -extern char AdminNick[MAXBUF]; -extern char diepass[MAXBUF]; -extern char restartpass[MAXBUF]; -extern char motd[MAXBUF]; -extern char rules[MAXBUF]; -extern char list[MAXBUF]; -extern char PrefixQuit[MAXBUF]; -extern char DieValue[MAXBUF]; - -extern int debugging; extern int WHOWAS_STALE; extern int WHOWAS_MAX; -extern int DieDelay; extern time_t startup_time; -extern int NetBufferSize; -extern int MaxWhoResults; -extern time_t nb_start; - extern std::vector module_names; - extern int boundPortCount; extern int portCount; - extern int ports[MAXSOCKS]; class Server; extern std::stringstream config_f; - - - -extern FILE *log_file; - extern userrec* fd_ref_table[65536]; typedef nspace::hash_map, irc::StrHashComp> user_hash; diff --git a/src/socket.cpp b/src/socket.cpp index 8da570fe4..420c29f6f 100644 --- a/src/socket.cpp +++ b/src/socket.cpp @@ -39,12 +39,9 @@ using namespace std; extern SocketEngine* SE; -extern FILE *log_file; extern int boundPortCount; extern int openSockfd[MAXSOCKS]; extern time_t TIME; -extern bool unlimitcore; -extern int MaxConn; InspSocket* socket_ref[65535]; diff --git a/src/userprocess.cpp b/src/userprocess.cpp index 3151e7f34..2e3c8713d 100644 --- a/src/userprocess.cpp +++ b/src/userprocess.cpp @@ -60,60 +60,22 @@ using namespace std; extern int MODCOUNT; extern int openSockfd[MAXSOCKS]; -extern bool nofork; -extern bool unlimitcore; extern struct sockaddr_in client,server; -extern char addrs[MAXBUF][255]; extern socklen_t length; -extern char configToken[MAXBUF], Addr[MAXBUF], Type[MAXBUF]; - -extern char DisabledCommands[MAXBUF]; - -extern bool AllowHalfop; -extern bool AllowProtect; -extern bool AllowFounder; - extern std::vector modules; extern std::vector module_names; extern std::vector factory; - extern std::vector module_sockets; - extern SocketEngine* SE; - extern time_t TIME; extern time_t OLDTIME; - -extern int DieDelay; extern time_t startup_time; -extern int NetBufferSize; -extern int MaxConn; -extern unsigned int SoftLimit; -extern int MaxWhoResults; -extern time_t nb_start; -extern int dns_timeout; extern serverstats* stats; +extern ServerConfig *Config; extern userrec* fd_ref_table[65536]; - -extern int LogLevel; -extern char ServerName[MAXBUF]; -extern char Network[MAXBUF]; -extern char ServerDesc[MAXBUF]; -extern char AdminName[MAXBUF]; -extern char AdminEmail[MAXBUF]; -extern char AdminNick[MAXBUF]; -extern char diepass[MAXBUF]; -extern char restartpass[MAXBUF]; -extern char motd[MAXBUF]; -extern char rules[MAXBUF]; -extern char list[MAXBUF]; -extern char PrefixQuit[MAXBUF]; -extern char DieValue[MAXBUF]; -extern char DNSServer[MAXBUF]; -extern char data[65536]; - +char data[65536]; typedef nspace::hash_map, irc::StrHashComp> user_hash; typedef nspace::hash_map, irc::StrHashComp> chan_hash; @@ -124,7 +86,6 @@ extern user_hash clientlist; extern chan_hash chanlist; extern whowas_hash whowas; -extern FILE *log_file; extern std::stringstream config_f; void ProcessUser(userrec* cu) @@ -146,7 +107,7 @@ void ProcessUser(userrec* cu) log(DEBUG,"Read result: %d",result); if (result) { - statsRecv += result; + stats->statsRecv += result; // perform a check on the raw buffer as an array (not a string!) to remove // characters 0 and 7 which are illegal in the RFC - replace them with spaces. // hopefully this should stop even more people whining about "Unknown command: *" @@ -174,12 +135,12 @@ void ProcessUser(userrec* cu) { WriteOpers("*** Excess flood from %s",current->ip); log(DEFAULT,"Excess flood from: %s",current->ip); - add_zline(120,ServerName,"Flood from unregistered connection",current->ip); + add_zline(120,Config->ServerName,"Flood from unregistered connection",current->ip); apply_lines(APPLY_ZLINES); } return; } - if (current->recvq.length() > (unsigned)NetBufferSize) + if (current->recvq.length() > (unsigned)Config->NetBufferSize) { if (current->registered == 7) { @@ -189,7 +150,7 @@ void ProcessUser(userrec* cu) { WriteOpers("*** Excess flood from %s",current->ip); log(DEFAULT,"Excess flood from: %s",current->ip); - add_zline(120,ServerName,"Flood from unregistered connection",current->ip); + add_zline(120,Config->ServerName,"Flood from unregistered connection",current->ip); apply_lines(APPLY_ZLINES); } return; @@ -221,7 +182,7 @@ void ProcessUser(userrec* cu) } else { - add_zline(120,ServerName,"Flood from unregistered connection",current->ip); + add_zline(120,Config->ServerName,"Flood from unregistered connection",current->ip); apply_lines(APPLY_ZLINES); } return; @@ -347,7 +308,7 @@ bool DoBackgroundUserStuff(time_t TIME) { log(DEBUG,"signon exceed, registered=3, and modules ready, OK: %d %d",TIME,curr->signon); curr->dns_done = true; - statsDnsBad++; + stats->statsDnsBad++; FullConnectUser(curr); if (fd_ref_table[currfd] != curr) // something changed, bail pronto return true; @@ -367,7 +328,7 @@ bool DoBackgroundUserStuff(time_t TIME) kill_link(curr,"Ping timeout"); return true; } - Write(curr->fd,"PING :%s",ServerName); + Write(curr->fd,"PING :%s",Config->ServerName); log(DEBUG,"InspIRCd: pinging: %s",curr->nick); curr->lastping = 0; curr->nping = TIME+curr->pingmax; // was hard coded to 120 @@ -381,8 +342,8 @@ bool DoBackgroundUserStuff(time_t TIME) void OpenLog(char** argv, int argc) { std::string logpath = GetFullProgDir(argv,argc) + "/ircd.log"; - log_file = fopen(logpath.c_str(),"a+"); - if (!log_file) + Config->log_file = fopen(logpath.c_str(),"a+"); + if (!Config->log_file) { printf("ERROR: Could not write to logfile %s, bailing!\n\n",logpath.c_str()); Exit(ERROR); @@ -408,10 +369,10 @@ void CheckRoot() void CheckDie() { - if (DieValue[0]) + if (*Config->DieValue) { - printf("WARNING: %s\n\n",DieValue); - log(DEFAULT,"Ut-Oh, somebody didn't read their config file: '%s'",DieValue); + printf("WARNING: %s\n\n",Config->DieValue); + log(DEFAULT,"Ut-Oh, somebody didn't read their config file: '%s'",Config->DieValue); exit(0); } } @@ -420,6 +381,7 @@ void LoadAllModules() { /* We must load the modules AFTER initializing the socket engine, now */ MODCOUNT = -1; + char configToken[MAXBUF]; for (int count = 0; count < ConfValueEnum("module",&config_f); count++) { ConfValue("module","name",count,configToken,&config_f); diff --git a/src/users.cpp b/src/users.cpp index 46bf70744..f1dc57794 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -31,7 +31,7 @@ using namespace std; #include "helperfuncs.h" extern std::stringstream config_f; -extern char ServerName[MAXBUF]; +extern ServerConfig* Config; extern time_t TIME; @@ -46,7 +46,7 @@ userrec::userrec() strcpy(dhost,""); strcpy(fullname,""); strcpy(modes,""); - server = (char*)FindServerNamePtr(ServerName); + server = (char*)FindServerNamePtr(Config->ServerName); strcpy(awaymsg,""); strcpy(oper,""); reset_due = TIME; diff --git a/src/xline.cpp b/src/xline.cpp index 0815f3c61..0e0ed9257 100644 --- a/src/xline.cpp +++ b/src/xline.cpp @@ -50,55 +50,10 @@ using namespace std; extern int MODCOUNT; extern std::vector modules; extern std::vector factory; - -extern int LogLevel; -extern char ServerName[MAXBUF]; -extern char Network[MAXBUF]; -extern char ServerDesc[MAXBUF]; -extern char AdminName[MAXBUF]; -extern char AdminEmail[MAXBUF]; -extern char AdminNick[MAXBUF]; -extern char diepass[MAXBUF]; -extern char restartpass[MAXBUF]; -extern char motd[MAXBUF]; -extern char rules[MAXBUF]; -extern char list[MAXBUF]; -extern char PrefixQuit[MAXBUF]; -extern char DieValue[MAXBUF]; - -extern int debugging; -extern int WHOWAS_STALE; -extern int WHOWAS_MAX; -extern int DieDelay; -extern time_t startup_time; -extern int NetBufferSize; -extern time_t nb_start; - -extern std::vector module_names; - -extern int boundPortCount; -extern int portCount; - -extern int ports[MAXSOCKS]; - +extern ServerConfig* Config; extern std::stringstream config_f; - -extern FILE *log_file; - typedef nspace::hash_map, irc::StrHashComp> user_hash; -typedef nspace::hash_map, irc::StrHashComp> chan_hash; -typedef nspace::hash_map, irc::InAddr_HashComp> address_cache; -typedef nspace::hash_map, irc::StrHashComp> whowas_hash; -typedef std::deque command_table; - - extern user_hash clientlist; -extern chan_hash chanlist; -extern whowas_hash whowas; -extern command_table cmdlist; -extern file_cache MOTD; -extern file_cache RULES; -extern address_cache IP; /* Version two, now with optimized expiry! * -- cgit v1.2.3