]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Add -notraceback startup option, disables automatic backtrace facility so that you...
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 6 Aug 2006 21:55:01 +0000 (21:55 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 6 Aug 2006 21:55:01 +0000 (21:55 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4751 e03df62e-2008-0410-955e-edbf42e46eb7

include/inspircd.h
src/inspircd.cpp

index e698efe219c030ef9930505ec83152d8e9f03745..0ebad50a8fca652632bda24a330d86aba2d211e2 100644 (file)
@@ -89,7 +89,7 @@ class InspIRCd : public classbase
        void BuildISupport();
        void MoveTo(std::string modulename,int slot);
        void Start();
-       void SetSignals();
+       void SetSignals(bool SEGVHandler);
        bool DaemonSeed();
        void MakeLowerMap();
        void MoveToLast(std::string modulename);
index a2b4e0d92e2c1e7ea67917c9a3d06196c5787752..b5aa33b5efcb304c8a4b8a05bc6f559302e23936 100644 (file)
@@ -155,13 +155,14 @@ void Rehash(int status)
        FOREACH_MOD(I_OnRehash,OnRehash(""));
 }
 
-void InspIRCd::SetSignals()
+void InspIRCd::SetSignals(bool SEGVHandler)
 {
        signal (SIGALRM, SIG_IGN);
        signal (SIGHUP, Rehash);
        signal (SIGPIPE, SIG_IGN);
        signal (SIGTERM, Exit);
-       signal (SIGSEGV, Error);
+       if (SEGVHandler)
+               signal (SIGSEGV, Error);
 }
 
 bool InspIRCd::DaemonSeed()
@@ -232,6 +233,8 @@ void InspIRCd::MakeLowerMap()
 
 InspIRCd::InspIRCd(int argc, char** argv)
 {
+       bool SEGVHandler = false;
+
        this->Start();
        module_sockets.clear();
        this->startup_time = time(NULL);
@@ -268,6 +271,10 @@ InspIRCd::InspIRCd(int argc, char** argv)
                        {
                                printf("WARNING: The `-nolimit' option is deprecated, and now on by default. This behaviour may change in the future.\n");
                        }
+                       else if (!strcmp(argv[i],"-notraceback"))
+                       {
+                               SEGVHandler = false;
+                       }
                        else if (!strcmp(argv[i],"-logfile"))
                        {
                                if (argc > i+1)
@@ -292,7 +299,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
        this->stats = new serverstats();
        this->Parser = new CommandParser();
        Config->ClearStack();
-       Config->Read(true,NULL);
+       Config->Read(true, NULL);
        CheckRoot();
        this->ModeGrok = new ModeParser();
        AddServerName(Config->ServerName);
@@ -306,7 +313,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
        memset(&Config->implement_lists,0,sizeof(Config->implement_lists));
 
        printf("\n");
-       this->SetSignals();
+       this->SetSignals(SEGVHandler);
        if (!Config->nofork)
        {
                if (!this->DaemonSeed())