]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/inspircd.cpp
Remove dependent commands BEFORE deleting the Module*, otherwise things go tits over...
[user/henk/code/inspircd.git] / src / inspircd.cpp
index b5aa33b5efcb304c8a4b8a05bc6f559302e23936..3ce2261c54034dde2c5282bdcc9ab42dab575ac3 100644 (file)
@@ -287,6 +287,12 @@ InspIRCd::InspIRCd(int argc, char** argv)
                                        printf("ERROR: The -logfile parameter must be followed by a log file name and path.\n");
                                        Exit(ERROR);
                                }
+                               i++;
+                       }
+                       else
+                       {
+                               printf("Usage: %s [-nofork] [-nolog] [-debug] [-wait] [-nolimit] [-notraceback] [-logfile <filename>]\n",argv[0]);
+                               Exit(ERROR);
                        }
                }
        }
@@ -530,12 +536,12 @@ bool InspIRCd::UnloadModule(const char* filename)
                        }
 
                        // found the module
+                       log(DEBUG,"Removing dependent commands...");
+                       Parser->RemoveCommands(filename);
                        log(DEBUG,"Deleting module...");
                        this->EraseModule(j);
                        log(DEBUG,"Erasing module entry...");
                        this->EraseFactory(j);
-                       log(DEBUG,"Removing dependent commands...");
-                       Parser->RemoveCommands(filename);
                        log(DEFAULT,"Module %s unloaded",filename);
                        MODCOUNT--;
                        BuildISupport();