]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Adjust m_mysql to match the assumed behaviour of m_pgsql exactly, e.g. when there...
[user/henk/code/inspircd.git] / src / inspircd.cpp
index 9635f707a5f652b86d027e1ec8b36b3fd6d65a1e..b9cd9f36c072340e7bc3b803dda80ed925dd64a9 100644 (file)
@@ -63,6 +63,7 @@
 #include "helperfuncs.h"
 #include "hashcomp.h"
 #include "socketengine.h"
+#include "inspircd_se_config.h"
 #include "userprocess.h"
 #include "socket.h"
 #include "typedefs.h"
@@ -294,13 +295,14 @@ InspIRCd::InspIRCd(int argc, char** argv)
 
        OpenLog(argv, argc);
        this->stats = new serverstats();
+       this->Parser = new CommandParser();
        Config->ClearStack();
        Config->Read(true,NULL);
        CheckRoot();
        this->ModeGrok = new ModeParser();
-       this->Parser = new CommandParser();
        AddServerName(Config->ServerName);
        CheckDie();
+       InitializeDisabledCommands(Config->DisabledCommands, this);
        stats->BoundPortCount = BindPorts(true);
 
        for(int t = 0; t < 255; t++)
@@ -322,7 +324,9 @@ InspIRCd::InspIRCd(int argc, char** argv)
        /* Because of limitations in kqueue on freebsd, we must fork BEFORE we
         * initialize the socket engine.
         */
-       SE = new SocketEngine();
+       SocketEngineFactory* SEF = new SocketEngineFactory();
+       SE = SEF->Create();
+       delete SEF;
 
        /* We must load the modules AFTER initializing the socket engine, now */
 
@@ -919,7 +923,7 @@ int InspIRCd::Run()
        /* Add the listening sockets used for client inbound connections
         * to the socket engine
         */
-       for (int count = 0; count < stats->BoundPortCount; count++)
+       for (unsigned long count = 0; count < stats->BoundPortCount; count++)
                SE->AddFd(Config->openSockfd[count],true,X_LISTEN);
 
        this->WritePID(Config->PID);
@@ -949,21 +953,17 @@ int main(int argc, char** argv)
         * Expected output:
         * 
         * String: 'PRIVMSG #test FOO BAR'
-        * NumItems = 4
         * Token 0 = 'PRIVMSG'
         * Token 1 = '#test'
         * Token 2 = 'FOO'
         * Token 3 = 'BAR'
         * String: 'PRIVMSG #test :FOO BAR BAZ'
-        * NumItems = 3
         * Token 0 = 'PRIVMSG'
         * Token 1 = '#test'
         * Token 2 = 'FOO BAR BAZ'
         * String: ':PRIVMSG #test :FOO BAR BAZ'
-        * NumItems = 3
         * Token 0 = ':PRIVMSG'
         * String: 'AAAAAAA'
-        * NumItems = 1
         * Token 0 = 'AAAAAAA'
         * String: ''
         * NumItems = 0
@@ -971,39 +971,38 @@ int main(int argc, char** argv)
        std::string a = "PRIVMSG #test FOO BAR";
        printf("String: '%s'\n",a.c_str());
        irc::tokenstream test(a);
-       printf("NumItems = %d\n",test.GetNumTokens());
-       printf("Token 0 = '%s'\n",test.GetToken(0).c_str());
-       printf("Token 1 = '%s'\n",test.GetToken(1).c_str());
-       printf("Token 2 = '%s'\n",test.GetToken(2).c_str());
-       printf("Token 3 = '%s'\n",test.GetToken(3).c_str());
+       printf("Token 0 = '%s'\n",test.GetToken().c_str());
+       printf("Token 1 = '%s'\n",test.GetToken().c_str());
+       printf("Token 2 = '%s'\n",test.GetToken().c_str());
+       printf("Token 3 = '%s'\n",test.GetToken().c_str());
+       printf("Token 4 = '%s'\n",test.GetToken().c_str());
 
        std::string b = "PRIVMSG #test :FOO BAR BAZ";
        printf("String: '%s'\n",b.c_str());
        irc::tokenstream test2(b);
-       printf("NumItems = %d\n",test2.GetNumTokens());
-       printf("Token 0 = '%s'\n",test2.GetToken(0).c_str());
-       printf("Token 1 = '%s'\n",test2.GetToken(1).c_str());
-       printf("Token 2 = '%s'\n",test2.GetToken(2).c_str());
+       printf("Token 0 = '%s'\n",test2.GetToken().c_str());
+       printf("Token 1 = '%s'\n",test2.GetToken().c_str());
+       printf("Token 2 = '%s'\n",test2.GetToken().c_str());
+       printf("Token 3 = '%s'\n",test2.GetToken().c_str());
 
        std::string c = ":PRIVMSG #test :FOO BAR BAZ";
        printf("String: '%s'\n",c.c_str());
        irc::tokenstream test3(c);
-       printf("NumItems = %d\n",test3.GetNumTokens());
-       printf("Token 0 = '%s'\n",test3.GetToken(0).c_str());
+       printf("Token 0 = '%s'\n",test3.GetToken().c_str());
 
        c = "AAAAAAA";
        printf("String: '%s'\n",c.c_str());
        irc::tokenstream test4(c);
-       printf("NumItems = %d\n",test4.GetNumTokens());
-       printf("Token 0 = '%s'\n",test4.GetToken(0).c_str());
+       printf("Token 0 = '%s'\n",test4.GetToken().c_str());
+       printf("Token 1 = '%s'\n",test4.GetToken().c_str());
 
        c = "";
        printf("String: '%s'\n",c.c_str());
        irc::tokenstream test5(c);
-       printf("NumItems = %d\n",test5.GetNumTokens());
+       printf("Token 0 = '%s'\n",test5.GetToken().c_str());
 
-       exit(0); */
-       
+       exit(0);
+       */
        try
        {
                ServerInstance = new InspIRCd(argc, argv);