]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Make error messages on failure to load command more useful
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 14 Oct 2007 21:16:44 +0000 (21:16 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Sun, 14 Oct 2007 21:16:44 +0000 (21:16 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8194 e03df62e-2008-0410-955e-edbf42e46eb7

include/command_parse.h
src/command_parse.cpp

index 2c883be203b696458ea4c6366af404c907161355..4e25d100487686edb03672b1463f3862ea4cffd1 100644 (file)
@@ -59,9 +59,10 @@ class CoreExport CommandParser : public classbase
        /** Finds the init_command symbol in a .so file
         * @param v A function pointer to be initialized
         * @param h A valid shared object handle
+        * @param name The filename being loaded, used for error reporting
         * @return True if the symbol could be found
         */
-       bool FindSym(void** v, void* h);
+       bool FindSym(void** v, void* h, const std::string &name);
 
        /** A list of core-implemented modes and their shared object handles
         */
index c273e0859cef1cb4dfcc7ca3871279613f8a72ef..e751db6d338e55dcdd74950b9a1827ca8d5a2112 100644 (file)
@@ -458,13 +458,13 @@ CommandParser::CommandParser(InspIRCd* Instance) : ServerInstance(Instance)
        para.resize(128);
 }
 
-bool CommandParser::FindSym(void** v, void* h)
+bool CommandParser::FindSym(void** v, void* h, const std::string &name)
 {
        *v = dlsym(h, "init_command");
        const char* err = dlerror();
        if (err && !(*v))
        {
-               ServerInstance->Log(SPARSE, "Error loading core command: %s\n", err);
+               ServerInstance->Log(SPARSE, "Error loading core command %s: %s\n", name, err);
                return false;
        }
        return true;
@@ -546,11 +546,11 @@ const char* CommandParser::LoadCommand(const char* name)
        if (!h)
        {
                const char* n = dlerror();
-               ServerInstance->Log(SPARSE, "Error loading core command: %s", n);
+               ServerInstance->Log(SPARSE, "Error loading core command %s: %s", name, n);
                return n;
        }
 
-       if (this->FindSym((void **)&cmd_factory_func, h))
+       if (this->FindSym((void **)&cmd_factory_func, h, name))
        {
                command_t* newcommand = cmd_factory_func(ServerInstance);
                this->CreateCommand(newcommand, h);