]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
More exception throwing in constructors
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 19 Feb 2006 15:09:24 +0000 (15:09 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 19 Feb 2006 15:09:24 +0000 (15:09 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3245 e03df62e-2008-0410-955e-edbf42e46eb7

src/modules/extra/m_filter_pcre.cpp
src/modules/m_censor.cpp
src/modules/m_filter.cpp
src/modules/m_helpop.cpp

index f6ec64d6c5ece563e2b99f8103430b409ad127ef..fe3d721d45b2244dd628231d2643a0837b15aa11 100644 (file)
@@ -28,6 +28,15 @@ using namespace std;
 #include "modules.h"
 #include "helperfuncs.h"
 
+class FilterPCREException
+{
+ public:
+       virtual char* GetReason()
+       {
+               return "Could not find <filter file=\"\"> definition in your config file!";
+       }
+};
+
 /* $ModDesc: m_filter with regexps */
 /* $CompileFlags: -I/usr/local/include */
 /* $LinkerFlags: -L/usr/local/lib -lpcre */
@@ -56,9 +65,8 @@ class ModuleFilterPCRE : public Module
                MyConf = new ConfigReader(filterfile);
                if ((filterfile == "") || (!MyConf->Verify()))
                {
-                       printf("Error, could not find <filter file=\"\"> definition in your config file!\n");
-                       log(DEFAULT,"Error, could not find <filter file=\"\"> definition in your config file!");
-                       return;
+                       FilterPCREException e;
+                       throw(e);
                }
                Srv->Log(DEFAULT,std::string("m_filter_pcre: read configuration from ")+filterfile);
 
@@ -156,10 +164,9 @@ class ModuleFilterPCRE : public Module
                MyConf = new ConfigReader(filterfile);
                if ((filterfile == "") || (!MyConf->Verify()))
                {
+                       FilterPCREException e;
                        // bail if the user forgot to create a config file
-                       printf("Error, could not find <filter file=\"\"> definition in your config file!");
-                       log(DEFAULT,"Error, could not find <filter file=\"\"> definition in your config file!");
-                       return;
+                       throw(e);
                }
                Srv->Log(DEFAULT,std::string("m_filter_pcre: read configuration from ")+filterfile);
 
index ed576302b1b7b7f479b013b4d6843a6184905ea3..0d18ac1e4331a173d99de3c1a2a9d13fdea617d2 100644 (file)
@@ -27,6 +27,7 @@ using namespace std;
 
 class CensorException : public ModuleException
 {
+ public:
        virtual char* GetReason()
        {
                return "Could not find <censor file=\"\"> definition in your config file!";
index 59fbed5966bd5e7deb8ee3a2cf155e4336c58746..c8d5633ffbfc02758557b6df5a90fd32f860343d 100644 (file)
@@ -31,6 +31,7 @@ using namespace std;
 
 class FilterException : public ModuleException
 {
+ public:
        virtual char* GetReason()
        {
                return "Could not find <filter file=\"\"> definition in your config file!";
index 9af6d6dc41917616239a13f3540275c1fdcebcb9..3272b3580bfc870bc1ff0088aa97441a73c4c4c8 100644 (file)
@@ -160,6 +160,15 @@ void sendtohelpop(userrec *src, int pcnt, char **params)
        Srv->SendToModeMask("oh",WM_AND,line);
 }
 
+class HelpopException
+{
+ private:
+       std::string err;
+ public:
+       HelpopException(std::string message) : err(message) { }
+       virtual char* GetReason() { return (char*)err.c_str(); }
+};
+
 class ModuleHelpop : public Module
 {
        private:
@@ -192,8 +201,8 @@ class ModuleHelpop : public Module
                        if (h_file == "")
                        {
                                helpop = NULL;
-                               log(DEFAULT,"m_helpop: Helpop file not Specified.");
-                               return;
+                               HelpopException e("Missing helpop file");
+                               throw(e);
                        }
 
                        helpop = new ConfigReader(h_file);
@@ -201,8 +210,8 @@ class ModuleHelpop : public Module
                                (helpop->ReadValue("nohelpo", "line1", 0) == "") ||
                                (helpop->ReadValue("start",   "line1", 0) == ""))
                        {
-                               log(DEFAULT,"m_helpop: Helpop file is missing important entries. Please check the example conf.");
-                               return;
+                               HelpopException e("m_helpop: Helpop file is missing important entries. Please check the example conf.");
+                               throw(e);
                        }
                }