X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Finspircd.cpp;h=ee5d0a2bc2d8507b76a39a857bd77e136f4c933f;hb=4d5b806140bbc41345f841d93e1e4d69fa58a5c3;hp=a512ae2568e89772e52ff3c354eb7c57fe736a31;hpb=82ce093f1adf40acda74d3cec927dc9e7fe963ff;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/inspircd.cpp b/src/inspircd.cpp index a512ae256..ee5d0a2bc 100644 --- a/src/inspircd.cpp +++ b/src/inspircd.cpp @@ -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() ? "" : 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);