X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fconfigreader.cpp;h=70e8cea785d02b31428d4d2493a9590781731665;hb=da28fe0b8c0bec9ab111044b1004f24cbf2d742e;hp=f440fca26539cf735d4f8b3df23acdd4cc63a443;hpb=bc148f5227b6a4e6ac2d69587998836412d51193;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/configreader.cpp b/src/configreader.cpp index f440fca26..70e8cea78 100644 --- a/src/configreader.cpp +++ b/src/configreader.cpp @@ -25,6 +25,7 @@ #include "inspircd.h" #include #include "xline.h" +#include "listmode.h" #include "exitcodes.h" #include "configparser.h" #include @@ -48,47 +49,12 @@ ServerConfig::ServerConfig() c_ipv6_range = 128; } -void ServerConfig::Update005() -{ - std::stringstream out(data005); - std::vector data; - std::string token; - while (out >> token) - data.push_back(token); - sort(data.begin(), data.end()); - - std::string line5; - isupport.clear(); - for(unsigned int i=0; i < data.size(); i++) - { - token = data[i]; - line5 = line5 + token + " "; - if (i % 13 == 12) - { - line5.append(":are supported by this server"); - isupport.push_back(line5); - line5.clear(); - } - } - if (!line5.empty()) - { - line5.append(":are supported by this server"); - isupport.push_back(line5); - } -} - -void ServerConfig::Send005(User* user) -{ - for (std::vector::iterator line = ServerInstance->Config->isupport.begin(); line != ServerInstance->Config->isupport.end(); line++) - user->WriteNumeric(RPL_ISUPPORT, "%s %s", user->nick.c_str(), line->c_str()); -} - template static void range(T& value, V min, V max, V def, const char* msg) { if (value >= (T)min && value <= (T)max) return; - ServerInstance->Logs->Log("CONFIG", DEFAULT, + ServerInstance->Logs->Log("CONFIG", LOG_DEFAULT, "WARNING: %s value of %ld is not between %ld and %ld; set to %ld.", msg, (long)value, (long)min, (long)max, (long)def); value = def; @@ -149,7 +115,7 @@ static void FindDNS(std::string& server) return; #ifdef _WIN32 // attempt to look up their nameserver from the system - ServerInstance->Logs->Log("CONFIG",DEFAULT,"WARNING: not defined, attempting to find a working server in the system settings..."); + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT,"WARNING: not defined, attempting to find a working server in the system settings..."); PFIXED_INFO pFixedInfo; DWORD dwBufferSize = sizeof(FIXED_INFO); @@ -171,15 +137,15 @@ static void FindDNS(std::string& server) if(!server.empty()) { - ServerInstance->Logs->Log("CONFIG",DEFAULT," set to '%s' as first active resolver in the system settings.", server.c_str()); + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT," set to '%s' as first active resolver in the system settings.", server.c_str()); return; } } - ServerInstance->Logs->Log("CONFIG",DEFAULT,"No viable nameserver found! Defaulting to nameserver '127.0.0.1'!"); + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT,"No viable nameserver found! Defaulting to nameserver '127.0.0.1'!"); #else // attempt to look up their nameserver from /etc/resolv.conf - ServerInstance->Logs->Log("CONFIG",DEFAULT,"WARNING: not defined, attempting to find working server in /etc/resolv.conf..."); + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT,"WARNING: not defined, attempting to find working server in /etc/resolv.conf..."); std::ifstream resolv("/etc/resolv.conf"); @@ -190,13 +156,13 @@ static void FindDNS(std::string& server) resolv >> server; if (server.find_first_not_of("0123456789.") == std::string::npos) { - ServerInstance->Logs->Log("CONFIG",DEFAULT," set to '%s' as first resolver in /etc/resolv.conf.",server.c_str()); + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT," set to '%s' as first resolver in /etc/resolv.conf.",server.c_str()); return; } } } - ServerInstance->Logs->Log("CONFIG",DEFAULT,"/etc/resolv.conf contains no viable nameserver entries! Defaulting to nameserver '127.0.0.1'!"); + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT,"/etc/resolv.conf contains no viable nameserver entries! Defaulting to nameserver '127.0.0.1'!"); #endif server = "127.0.0.1"; } @@ -568,16 +534,6 @@ void ServerConfig::Fill() ulines[assign(server)] = tag->getBool("silent"); } - tags = ConfTags("banlist"); - for(ConfigIter i = tags.first; i != tags.second; ++i) - { - ConfigTag* tag = i->second; - std::string chan; - if (!tag->readString("chan", chan)) - throw CoreException(" tag missing chan at " + tag->getTagLocation()); - maxbans[chan] = tag->getInt("limit"); - } - ReadXLine(this, "badip", "ipmask", ServerInstance->XLines->GetFactory("Z")); ReadXLine(this, "badnick", "nick", ServerInstance->XLines->GetFactory("Q")); ReadXLine(this, "badhost", "host", ServerInstance->XLines->GetFactory("K")); @@ -729,7 +685,7 @@ void ServerConfig::Apply(ServerConfig* old, const std::string &useruid) User* user = useruid.empty() ? NULL : ServerInstance->FindNick(useruid); if (!valid) - ServerInstance->Logs->Log("CONFIG",DEFAULT, "There were errors in your configuration file:"); + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "There were errors in your configuration file:"); while (errstr.good()) { @@ -871,7 +827,7 @@ ConfigTag* ServerConfig::ConfValue(const std::string &tag) ConfigTag* rv = found.first->second; found.first++; if (found.first != found.second) - ServerInstance->Logs->Log("CONFIG",DEFAULT, "Multiple <" + tag + "> tags found; only first will be used " + ServerInstance->Logs->Log("CONFIG",LOG_DEFAULT, "Multiple <" + tag + "> tags found; only first will be used " "(first at " + rv->getTagLocation() + "; second at " + found.first->second->getTagLocation() + ")"); return rv; } @@ -921,7 +877,7 @@ void ConfigReaderThread::Run() void ConfigReaderThread::Finish() { ServerConfig* old = ServerInstance->Config; - ServerInstance->Logs->Log("CONFIG",DEBUG,"Switching to new configuration..."); + ServerInstance->Logs->Log("CONFIG",LOG_DEBUG,"Switching to new configuration..."); ServerInstance->Config = this->Config; Config->Apply(old, TheUserUID); @@ -936,11 +892,12 @@ void ConfigReaderThread::Finish() ServerInstance->XLines->CheckELines(); ServerInstance->XLines->ApplyLines(); ServerInstance->Res->Rehash(); - ServerInstance->ResetMaxBans(); + ModeReference ban(NULL, "ban"); + static_cast(*ban)->DoRehash(); Config->ApplyDisabledCommands(Config->DisabledCommands); User* user = ServerInstance->FindNick(TheUserUID); FOREACH_MOD(I_OnRehash, OnRehash(user)); - ServerInstance->BuildISupport(); + ServerInstance->ISupport.Build(); ServerInstance->Logs->CloseLogs(); ServerInstance->Logs->OpenFileLogs();