]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Add newlines to the end :) (\n)
[user/henk/code/inspircd.git] / src / inspircd.cpp
index a512ae2568e89772e52ff3c354eb7c57fe736a31..ee5d0a2bc2d8507b76a39a857bd77e136f4c933f 100644 (file)
@@ -277,15 +277,29 @@ void InspIRCd::WritePID(const std::string &filename)
 InspIRCd::InspIRCd(int argc, char** argv)
        : GlobalCulls(this),
 
-        /* Functor initialisation. Note that the ordering here is very important. */
+        /* Functor initialisation. Note that the ordering here is very important. 
+         *
+         * THIS MUST MATCH ORDER OF DECLARATION OF THE HandleWhateverFunc classes
+         * within class InspIRCd.
+         */
         HandleProcessUser(this),
         HandleIsNick(this),
         HandleIsIdent(this),
         HandleFindDescriptor(this),
         HandleFloodQuitUser(this),
-
-        /* Functor pointer initialisation. Must match the order of the list above */
+        HandleIsChannel(this),
+        HandleIsSID(this),
+        HandleRehash(this),
+
+        /* Functor pointer initialisation. Must match the order of the list above
+         *
+         * THIS MUST MATCH THE ORDER OF DECLARATION OF THE FUNCTORS, e.g. the methods
+         * themselves within the class.
+         */
         ProcessUser(&HandleProcessUser),
+        IsChannel(&HandleIsChannel),
+        IsSID(&HandleIsSID),
+        Rehash(&HandleRehash),
         IsNick(&HandleIsNick),
         IsIdent(&HandleIsIdent),
         FindDescriptor(&HandleFindDescriptor),
@@ -309,11 +323,13 @@ InspIRCd::InspIRCd(int argc, char** argv)
        SE = SEF->Create(this);
        delete SEF;
 
-
        ThreadEngineFactory* tef = new ThreadEngineFactory();
        this->Threads = tef->Create(this);
        delete tef;
 
+       /* Default implementation does nothing */
+       this->PI = new ProtocolInterface(this);
+
        this->s_signal = 0;
        
        // Create base manager classes early, so nothing breaks
@@ -539,12 +555,16 @@ InspIRCd::InspIRCd(int argc, char** argv)
        {
                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");
                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("\nInspIRCd is now running as '%s'[%s] with %d max open sockets\n", Config->ServerName,Config->GetSID().c_str(), SE->GetMaxFds());
+       
 #ifndef WINDOWS
        if (!Config->nofork)
        {
@@ -581,7 +601,6 @@ InspIRCd::InspIRCd(int argc, char** argv)
        }
 #endif
 
-       printf("\nInspIRCd is now running as '%s'[%s] with %d max open sockets\n", Config->ServerName,Config->GetSID().c_str(), SE->GetMaxFds());
        Logs->Log("STARTUP", DEFAULT, "Startup complete as '%s'[%s], %d max open sockets", Config->ServerName,Config->GetSID().c_str(), SE->GetMaxFds());
 
        this->WritePID(Config->PID);