]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
After discussions and thought, move umode +n to +s. This increases cross-ircd compat...
[user/henk/code/inspircd.git] / src / inspircd.cpp
index d152e5d1a24b934cd4c44fc464329fc95bda416d..1d8ce762517fd4aed0f873c2ac2503d63efbb67b 100644 (file)
@@ -11,6 +11,8 @@
  * ---------------------------------------------------
  */
 
+/* w00t was here. ;p */
+
 /* $Install: src/inspircd $(BINPATH) */
 #include "inspircd.h"
 #include <signal.h>
@@ -93,7 +95,7 @@ void InspIRCd::Cleanup()
        /* Close all client sockets, or the new process inherits them */
        for (std::vector<User*>::const_iterator i = this->Users->local_users.begin(); i != this->Users->local_users.end(); i++)
        {
-               (*i)->SetWriteError("Server shutdown");
+               this->Users->QuitUser((*i), "Server shutdown");
                (*i)->CloseSocket();
        }
 
@@ -351,7 +353,8 @@ bool InspIRCd::DaemonSeed()
 void InspIRCd::WritePID(const std::string &filename)
 {
        std::string fname = (filename.empty() ? "inspircd.pid" : filename);
-       if (*(fname.begin()) != '/')
+       std::replace(fname.begin(), fname.end(), '\\', '/');
+       if ((fname[0] != '/') && (!Config->StartsWithWindowsDriveLetter(filename)))
        {
                std::string::size_type pos;
                std::string confpath = this->ConfigFileName;
@@ -668,22 +671,15 @@ InspIRCd::InspIRCd(int argc, char** argv)
        this->BuildISupport();
        InitializeDisabledCommands(Config->DisabledCommands, this);
 
-       /*if ((Config->ports.size() == 0) && (found_ports > 0))
-       {
-               printf("\nERROR: I couldn't bind any ports! Are you sure you didn't start InspIRCd twice?\n");
-               Logs->Log("STARTUP", DEFAULT,"ERROR: I couldn't bind any ports! Something else is bound to those ports!");
-               Exit(EXIT_STATUS_BIND);
-       }*/
-
        if (Config->ports.size() != (unsigned int)found_ports)
        {
                printf("\nWARNING: Not all your client ports could be bound --\nstarting anyway with %d of %d client ports bound.\n\n", bounditems, found_ports);
                printf("The following port(s) failed to bind:\n");
-               printf("Hint: Try using an IP instead of blank or *\n\n");
+               printf("Hint: Try using a public IP instead of blank or *\n\n");
                int j = 1;
                for (FailedPortList::iterator i = pl.begin(); i != pl.end(); i++, j++)
                {
-                       printf("%d.\tIP: %s\tPort: %lu\n", j, i->first.empty() ? "<all>" : i->first.c_str(), (unsigned long)i->second);
+                       printf("%d.\tAddress: %s\tReason: %s\n", j, i->first.empty() ? "<all>" : i->first.c_str(), i->second.c_str());
                }
        }
 
@@ -705,7 +701,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
                 * e.g. we are restarting, or being launched by cron. Dont kill parent, and dont
                 * close stdin/stdout
                 */
-               if (!do_nofork)
+               if ((!do_nofork) && (!do_testsuite))
                {
                        fclose(stdin);
                        fclose(stderr);
@@ -794,7 +790,11 @@ int InspIRCd::Run()
                {
                        if (TIME < OLDTIME)
                        {
-                               SNO->WriteToSnoMask('A', "\002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %lu secs.", (unsigned long)OLDTIME-TIME);
+                               SNO->WriteToSnoMask('d', "\002EH?!\002 -- Time is flowing BACKWARDS in this dimension! Clock drifted backwards %lu secs.", (unsigned long)OLDTIME-TIME);
+                       }
+                       else if (TIME != OLDTIME + 1)
+                       {
+                               SNO->WriteToSnoMask('d', "\002EH?!\002 -- Time is jumping FORWARDS! Clock skipped %lu secs.", (unsigned long)TIME - OLDTIME);
                        }
 
                        if ((TIME % 3600) == 0)