]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Don't kill cloaking users when hash/md5 is missing.
[user/henk/code/inspircd.git] / src / inspircd.cpp
index 8cc1dd8787d0f38458d1bf4f038394ab416284a7..067b2a2f353f4296df7ce080e2c9a84e65ff2996 100644 (file)
@@ -1,6 +1,7 @@
 /*
  * InspIRCd -- Internet Relay Chat Daemon
  *
+ *   Copyright (C) 2020 Matt Schatz <genius3000@g3k.solutions>
  *   Copyright (C) 2018 Chris Novakovic <chrisnovakovic@users.noreply.github.com>
  *   Copyright (C) 2013, 2017-2020 Sadie Powell <sadie@witchery.services>
  *   Copyright (C) 2013 Adam <Adam@anope.org>
@@ -36,7 +37,6 @@
 #ifndef _WIN32
        #include <unistd.h>
        #include <sys/resource.h>
-       #include <dlfcn.h>
        #include <getopt.h>
        #include <pwd.h> // setuid
        #include <grp.h> // setgid
@@ -53,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,
@@ -136,13 +136,19 @@ namespace
 #endif
        }
 
-       // Deletes a pointer and then zeroes it.
-       template<typename T>
-       void DeleteZero(T*& pr)
+       // Checks whether the server clock has skipped too much and warn about it if it has.
+       void CheckTimeSkip(time_t oldtime, time_t newtime)
        {
-               T* p = pr;
-               pr = NULL;
-               delete p;
+               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 <security:runas{user,group}>.
@@ -382,7 +388,7 @@ namespace
 
                        std::cout << con_bright << "Hints:" << con_reset << std::endl
                                << "- For TCP/IP listeners try using a public IP address in <bind:address> instead" << std::endl
-                               << "  of * of leaving it blank." << std::endl
+                               << "  of * or leaving it blank." << std::endl
                                << "- For UNIX socket listeners try enabling <bind:rewrite> to replace old sockets." << std::endl;
                }
        }
@@ -423,9 +429,9 @@ void InspIRCd::Cleanup()
                delete FakeClient->server;
                FakeClient->cull();
        }
-       DeleteZero(this->FakeClient);
-       DeleteZero(this->XLines);
-       DeleteZero(this->Config);
+       stdalgo::delete_zero(this->FakeClient);
+       stdalgo::delete_zero(this->XLines);
+       stdalgo::delete_zero(this->Config);
        SocketEngine::Deinit();
        Logs->CloseLogs();
 }
@@ -539,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, "");
@@ -670,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;