diff --git a/src/lib/arch/IArchPlugin.h b/src/lib/arch/IArchPlugin.h index 86a933f5e..bcdfa8dd1 100644 --- a/src/lib/arch/IArchPlugin.h +++ b/src/lib/arch/IArchPlugin.h @@ -48,9 +48,9 @@ public: //! Init the common parts /*! - Initializes common parts like log and arch. + Initializes common parts like log. */ - virtual void init(void* log, void* arch) = 0; + virtual void init(void* log) = 0; //! Init the event part /*! diff --git a/src/lib/arch/unix/ArchPluginUnix.cpp b/src/lib/arch/unix/ArchPluginUnix.cpp index adf705dae..66abcbf83 100644 --- a/src/lib/arch/unix/ArchPluginUnix.cpp +++ b/src/lib/arch/unix/ArchPluginUnix.cpp @@ -28,7 +28,7 @@ #include #include -typedef void (*initFunc)(void*, void*); +typedef void (*initFunc)(void*); typedef int (*initEventFunc)(void (*sendEvent)(const char*, void*)); typedef void* (*invokeFunc)(const char*, void*); typedef void (*cleanupFunc)(); @@ -104,13 +104,13 @@ ArchPluginUnix::unload() } void -ArchPluginUnix::init(void* log, void* arch) +ArchPluginUnix::init(void* log) { PluginTable::iterator it; for (it = m_pluginTable.begin(); it != m_pluginTable.end(); it++) { initFunc initPlugin = (initFunc)dlsym(it->second, "init"); if (initPlugin != NULL) { - initPlugin(log, arch); + initPlugin(log); } else { LOG((CLOG_DEBUG "no init function in %s", it->first.c_str())); diff --git a/src/lib/arch/unix/ArchPluginUnix.h b/src/lib/arch/unix/ArchPluginUnix.h index 092a1fd9c..93abbb722 100644 --- a/src/lib/arch/unix/ArchPluginUnix.h +++ b/src/lib/arch/unix/ArchPluginUnix.h @@ -33,7 +33,7 @@ public: // IArchPlugin overrides void load(); void unload(); - void init(void* log, void* arch); + void init(void* log); void initEvent(void* eventTarget, IEventQueue* events); bool exists(const char* name); virtual void* invoke(const char* pluginName, diff --git a/src/lib/arch/win32/ArchPluginWindows.cpp b/src/lib/arch/win32/ArchPluginWindows.cpp index 7bbbe1a62..a68d2797f 100644 --- a/src/lib/arch/win32/ArchPluginWindows.cpp +++ b/src/lib/arch/win32/ArchPluginWindows.cpp @@ -27,7 +27,7 @@ #include #include -typedef void (*initFunc)(void*, void*); +typedef void (*initFunc)(void*); typedef int (*initEventFunc)(void (*sendEvent)(const char*, void*)); typedef void* (*invokeFunc)(const char*, void**); typedef void (*cleanupFunc)(); @@ -90,7 +90,7 @@ ArchPluginWindows::unload() } void -ArchPluginWindows::init(void* log, void* arch) +ArchPluginWindows::init(void* log) { PluginTable::iterator it; HINSTANCE lib; @@ -98,7 +98,7 @@ ArchPluginWindows::init(void* log, void* arch) lib = reinterpret_cast(it->second); initFunc initPlugin = (initFunc)GetProcAddress(lib, "init"); if (initPlugin != NULL) { - initPlugin(log, arch); + initPlugin(log); } else { LOG((CLOG_DEBUG "no init function in %s", it->first.c_str())); diff --git a/src/lib/arch/win32/ArchPluginWindows.h b/src/lib/arch/win32/ArchPluginWindows.h index 4a5e1257a..39d3fd700 100644 --- a/src/lib/arch/win32/ArchPluginWindows.h +++ b/src/lib/arch/win32/ArchPluginWindows.h @@ -36,7 +36,7 @@ public: // IArchPlugin overrides void load(); void unload(); - void init(void* log, void* arch); + void init(void* log); void initEvent(void* eventTarget, IEventQueue* events); bool exists(const char* name); void* invoke(const char* pluginName, diff --git a/src/lib/plugin/ns/ns.cpp b/src/lib/plugin/ns/ns.cpp index 84e20b1e7..62e30bb17 100644 --- a/src/lib/plugin/ns/ns.cpp +++ b/src/lib/plugin/ns/ns.cpp @@ -32,14 +32,15 @@ Log* g_log = NULL; extern "C" { void -init(void* log, void* arch) +init(void* log) { if (g_log == NULL) { g_log = new Log(reinterpret_cast(log)); } if (g_arch == NULL) { - g_arch = new Arch(reinterpret_cast(arch)); + g_arch = new Arch(); + g_arch->init(); } } @@ -100,6 +101,10 @@ cleanup() if (g_secureListenSocket != NULL) { delete g_secureListenSocket; } + + if (g_arch != NULL) { + delete g_arch; + } } } \ No newline at end of file diff --git a/src/lib/plugin/ns/ns.h b/src/lib/plugin/ns/ns.h index 9e7251669..358058db7 100644 --- a/src/lib/plugin/ns/ns.h +++ b/src/lib/plugin/ns/ns.h @@ -33,7 +33,7 @@ extern "C" { -NS_API void init(void* log, void* arch); +NS_API void init(void* log); NS_API int initEvent(void (*sendEvent)(const char*, void*)); NS_API void* invoke(const char* command, void** args); NS_API void cleanup();