summaryrefslogtreecommitdiff
path: root/src/dynamic.cpp
diff options
context:
space:
mode:
authorpeavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-16 17:14:45 +0000
committerpeavey <peavey@e03df62e-2008-0410-955e-edbf42e46eb7>2007-07-16 17:14:45 +0000
commitbab14f0dd2345c9d7dcbc47c918563709e1ac094 (patch)
tree753a23cfc9fc08c6697e80b3e686f074aa911d85 /src/dynamic.cpp
parent3abff3a37550cc1d88dd4d1fd7ed526e89309a53 (diff)
'svn propset -R svn:eol-style CR *' Set to UNIX-style always. Binaries are auto skipped by svn.
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@7454 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/dynamic.cpp')
-rw-r--r--src/dynamic.cpp90
1 files changed, 1 insertions, 89 deletions
diff --git a/src/dynamic.cpp b/src/dynamic.cpp
index 179113cae..5d7759b47 100644
--- a/src/dynamic.cpp
+++ b/src/dynamic.cpp
@@ -1,89 +1 @@
-/* +------------------------------------+
- * | Inspire Internet Relay Chat Daemon |
- * +------------------------------------+
- *
- * InspIRCd: (C) 2002-2007 InspIRCd Development Team
- * See: http://www.inspircd.org/wiki/index.php/Credits
- *
- * This program is free but copyrighted software; see
- * the file COPYING for details.
- *
- * ---------------------------------------------------
- */
-
-#include "inspircd.h"
-#include "configreader.h"
-#include "dynamic.h"
-#ifndef WIN32
-#include <dlfcn.h>
-#endif
-
-DLLManager::DLLManager(InspIRCd* ServerInstance, const char *fname)
-{
- err = NULL;
-
- if (!strstr(fname,".so"))
- {
- err = "This doesn't look like a module file to me...";
- return;
- }
-
- h = dlopen(fname, RTLD_NOW|RTLD_LOCAL);
- if (!h)
- {
- err = (char*)dlerror();
- return;
- }
-}
-
-DLLManager::~DLLManager()
-{
- // close the library if it isn't null
- if (h)
- dlclose(h);
-}
-
-
-
-bool DLLManager::GetSymbol(void** v, const char* sym_name)
-{
- // try extract a symbol from the library
- // get any error message is there is any
-
- if (h)
- {
- dlerror(); // clear value
- *v = dlsym(h, sym_name);
- err = (char*)dlerror();
- if (!*v || err)
- return false;
- }
-
- if (err)
- {
- return false;
- }
- else
- {
- return true;
- }
-}
-
-DLLFactoryBase::DLLFactoryBase(InspIRCd* Instance, const char* fname, const char* symbol) : DLLManager(Instance, fname)
-{
- // try get the factory function if there is no error yet
- factory_func = 0;
-
- if (!LastError())
- {
- if (!GetSymbol( (void **)&factory_func, symbol ? symbol : "init_module"))
- {
- throw ModuleException("Missing init_module() entrypoint!");
- }
- }
-}
-
-DLLFactoryBase::~DLLFactoryBase()
-{
-}
-
+/* +------------------------------------+ * | Inspire Internet Relay Chat Daemon | * +------------------------------------+ * * InspIRCd: (C) 2002-2007 InspIRCd Development Team * See: http://www.inspircd.org/wiki/index.php/Credits * * This program is free but copyrighted software; see * the file COPYING for details. * * --------------------------------------------------- */ #include "inspircd.h" #include "configreader.h" #include "dynamic.h" #ifndef WIN32 #include <dlfcn.h> #endif DLLManager::DLLManager(InspIRCd* ServerInstance, const char *fname) { err = NULL; if (!strstr(fname,".so")) { err = "This doesn't look like a module file to me..."; return; } h = dlopen(fname, RTLD_NOW|RTLD_LOCAL); if (!h) { err = (char*)dlerror(); return; } } DLLManager::~DLLManager() { // close the library if it isn't null if (h) dlclose(h); } bool DLLManager::GetSymbol(void** v, const char* sym_name) { // try extract a symbol from the library // get any error message is there is any if (h) { dlerror(); // clear value *v = dlsym(h, sym_name); err = (char*)dlerror(); if (!*v || err) return false; } if (err) { return false; } else { return true; } } DLLFactoryBase::DLLFactoryBase(InspIRCd* Instance, const char* fname, const char* symbol) : DLLManager(Instance, fname) { // try get the factory function if there is no error yet factory_func = 0; if (!LastError()) { if (!GetSymbol( (void **)&factory_func, symbol ? symbol : "init_module")) { throw ModuleException("Missing init_module() entrypoint!"); } } } DLLFactoryBase::~DLLFactoryBase() { } \ No newline at end of file