summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-14 21:16:44 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2007-10-14 21:16:44 +0000
commit45776df702235ec38625403778daff4c7aed4e4e (patch)
tree123695e3f32f909f8d7963545b4e449ec392c8f3
parent71532e29af6d0be878596e47dbd66a6ce573893d (diff)
Make error messages on failure to load command more useful
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@8194 e03df62e-2008-0410-955e-edbf42e46eb7
-rw-r--r--include/command_parse.h3
-rw-r--r--src/command_parse.cpp8
2 files changed, 6 insertions, 5 deletions
diff --git a/include/command_parse.h b/include/command_parse.h
index 2c883be20..4e25d1004 100644
--- a/include/command_parse.h
+++ b/include/command_parse.h
@@ -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
*/
diff --git a/src/command_parse.cpp b/src/command_parse.cpp
index c273e0859..e751db6d3 100644
--- a/src/command_parse.cpp
+++ b/src/command_parse.cpp
@@ -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);