X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Finspircd.cpp;h=5760e631b501f62ee155ce12537a671cdd1fe91e;hb=6cfabb0064cab52bbbab59974e53dc0fa1954da7;hp=e2d3f8dff24227d4635bc84ea9b2e129b3ef0487;hpb=aed712ba8e087232fcd9f71db4311687a7ce4398;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/inspircd.cpp b/src/inspircd.cpp index e2d3f8dff..5760e631b 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -1,6 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2020 Matt Schatz * Copyright (C) 2018 Chris Novakovic * Copyright (C) 2013, 2017-2020 Sadie Powell * Copyright (C) 2013 Adam @@ -52,7 +53,7 @@ InspIRCd* ServerInstance = NULL; -/** Seperate from the other casemap tables so that code *can* still exclusively rely on RFC casemapping +/** Separate from the other casemap tables so that code *can* still exclusively rely on RFC casemapping * if it must. * * This is provided as a pointer so that modules can change it to their custom mapping tables, @@ -135,6 +136,21 @@ namespace #endif } + // Checks whether the server clock has skipped too much and warn about it if it has. + void CheckTimeSkip(time_t oldtime, time_t newtime) + { + if (!ServerInstance->Config->TimeSkipWarn) + return; + + time_t timediff = newtime - oldtime; + + if (timediff > ServerInstance->Config->TimeSkipWarn) + ServerInstance->SNO->WriteToSnoMask('a', "\002Performance warning!\002 Server clock jumped forwards by %lu seconds!", timediff); + + else if (timediff < -ServerInstance->Config->TimeSkipWarn) + ServerInstance->SNO->WriteToSnoMask('a', "\002Performance warning!\002 Server clock jumped backwards by %lu seconds!", labs(timediff)); + } + // Drops to the unprivileged user/group specified in . void DropRoot() { @@ -306,7 +322,7 @@ namespace default: // An unknown option was specified. - std::cout << con_red << "Error:" << con_reset << " unknown option '" << argv[optind - 1] << "'." << std::endl + std::cout << con_red << "Error:" << con_reset << " unknown option '" << argv[optind] << "'." << std::endl << con_bright << "Usage: " << con_reset << argv[0] << " [--config ] [--debug] [--nofork] [--nolog]" << std::endl << std::string(strlen(argv[0]) + 8, ' ') << "[--nopid] [--runasroot] [--version]" << std::endl; ServerInstance->Exit(EXIT_STATUS_ARGV); @@ -372,7 +388,7 @@ namespace std::cout << con_bright << "Hints:" << con_reset << std::endl << "- For TCP/IP listeners try using a public IP address in instead" << std::endl - << " of * of leaving it blank." << std::endl + << " of * or leaving it blank." << std::endl << "- For UNIX socket listeners try enabling to replace old sockets." << std::endl; } } @@ -529,7 +545,7 @@ InspIRCd::InspIRCd(int argc, char** argv) std::cout << "InspIRCd Process ID: " << con_green << getpid() << con_reset << std::endl; /* During startup we read the configuration now, not in - * a seperate thread + * a separate thread */ this->Config->Read(); this->Config->Apply(NULL, ""); @@ -660,24 +676,14 @@ void InspIRCd::Run() UpdateTime(); /* Run background module timers every few seconds - * (the docs say modules shouldnt rely on accurate + * (the docs say modules should not rely on accurate * timing using this event, so we dont have to * time this exactly). */ if (TIME.tv_sec != OLDTIME) { CollectStats(); - - if (Config->TimeSkipWarn) - { - time_t timediff = TIME.tv_sec - OLDTIME; - - if (timediff > Config->TimeSkipWarn) - SNO->WriteToSnoMask('a', "\002Performance warning!\002 Server clock jumped forwards by %lu seconds!", timediff); - - else if (timediff < -Config->TimeSkipWarn) - SNO->WriteToSnoMask('a', "\002Performance warning!\002 Server clock jumped backwards by %lu seconds!", labs(timediff)); - } + CheckTimeSkip(OLDTIME, TIME.tv_sec); OLDTIME = TIME.tv_sec;