diff --git a/Modules.cpp b/Modules.cpp index c05e9d92..f2569987 100644 --- a/Modules.cpp +++ b/Modules.cpp @@ -189,7 +189,7 @@ void CSocket::SetModule(CModule* p) { m_pModule = p; } CModule* CSocket::GetModule() const { return m_pModule; } /////////////////// !Socket /////////////////// -CModule::CModule(void* pDLL, CUser* pUser, const CString& sModName, const CString& sDataDir) { +CModule::CModule(ModHandle pDLL, CUser* pUser, const CString& sModName, const CString& sDataDir) { m_bFake = false; m_bGlobal = false; m_pDLL = pDLL; @@ -205,7 +205,7 @@ CModule::CModule(void* pDLL, CUser* pUser, const CString& sModName, const CStrin } } -CModule::CModule(void* pDLL, const CString& sModName, const CString& sDataDir) { +CModule::CModule(ModHandle pDLL, const CString& sModName, const CString& sDataDir) { m_bFake = false; m_pDLL = pDLL; m_pManager = &(CZNC::Get().GetManager()); @@ -519,7 +519,7 @@ CModule::EModRet CModule::OnChanNotice(CNick& Nick, CChan& Channel, CString& sMe CModule::EModRet CModule::OnTopic(CNick& Nick, CChan& Channel, CString& sTopic) { return CONTINUE; } CModule::EModRet CModule::OnTimerAutoJoin(CChan& Channel) { return CONTINUE; } -void* CModule::GetDLL() { return m_pDLL; } +ModHandle CModule::GetDLL() { return m_pDLL; } bool CModule::PutIRC(const CString& sLine) { return (m_pUser) ? m_pUser->PutIRC(sLine) : false; } @@ -726,7 +726,7 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CUser* p unsigned int uDLFlags = RTLD_NOW; uDLFlags |= (pUser) ? RTLD_LOCAL : RTLD_GLOBAL; - void* p = dlopen((sModPath).c_str(), uDLFlags); + ModHandle p = dlopen((sModPath).c_str(), uDLFlags); if (!p) { sRetMsg = "Unable to load module [" + sModule + "] [" + dlerror() + "]"; @@ -778,7 +778,7 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CUser* p CModule* pModule = NULL; if (pUser) { - typedef CModule* (*fp)(void*, CUser* pUser, + typedef CModule* (*fp)(ModHandle, CUser* pUser, const CString& sModName, const CString& sDataPath); fp Load = (fp) dlsym(p, "Load"); @@ -790,7 +790,7 @@ bool CModules::LoadModule(const CString& sModule, const CString& sArgs, CUser* p pModule = Load(p, pUser, sModule, sDataPath); } else { - typedef CModule* (*fp)(void*, const CString& sModName, + typedef CModule* (*fp)(ModHandle, const CString& sModName, const CString& sDataPath); fp Load = (fp) dlsym(p, "Load"); @@ -866,7 +866,7 @@ bool CModules::UnloadModule(const CString& sModule, CString& sRetMsg) { return false; } - void* p = pModule->GetDLL(); + ModHandle p = pModule->GetDLL(); if (p) { typedef void (*fp)(CModule*); @@ -929,7 +929,7 @@ bool CModules::GetModInfo(CModInfo& ModInfo, const CString& sModule) { unsigned int uDLFlags = RTLD_LAZY | RTLD_LOCAL; - void* p = dlopen((sModPath).c_str(), uDLFlags); + ModHandle p = dlopen((sModPath).c_str(), uDLFlags); if (!p) { return false; diff --git a/Modules.h b/Modules.h index daa9bd92..f864a66d 100644 --- a/Modules.h +++ b/Modules.h @@ -36,19 +36,21 @@ class CClient; #endif #endif +typedef void* ModHandle; + #define MODCONSTRUCTOR(CLASS) \ - CLASS(void *pDLL, CUser* pUser, const CString& sModName, \ + CLASS(ModHandle pDLL, CUser* pUser, const CString& sModName, \ const CString& sModPath) \ : CModule(pDLL, pUser, sModName, sModPath) #define MODULEDEFS(CLASS, DESCRIPTION) \ extern "C" { \ CString GetDescription() { return DESCRIPTION; } \ bool IsGlobal() { return false; } \ - CModule* Load(void* p, CUser* pUser, const CString& sModName, \ + CModule* Load(ModHandle p, CUser* pUser, const CString& sModName, \ const CString& sModPath); \ void Unload(CModule* pMod); double GetVersion(); } \ double GetVersion() { return VERSION; } \ - CModule* Load(void* p, CUser* pUser, const CString& sModName, \ + CModule* Load(ModHandle p, CUser* pUser, const CString& sModName, \ const CString& sModPath) \ { return new CLASS(p, pUser, sModName, sModPath); } \ void Unload(CModule* pMod) { if (pMod) { delete pMod; } \ @@ -57,17 +59,17 @@ class CClient; // Global Module Macros #define GLOBALMODCONSTRUCTOR(CLASS) \ - CLASS(void *pDLL, const CString& sModName, const CString& sModPath) \ + CLASS(ModHandle pDLL, const CString& sModName, const CString& sModPath) \ : CGlobalModule(pDLL, sModName, sModPath) #define GLOBALMODULEDEFS(CLASS, DESCRIPTION) \ extern "C" { \ CString GetDescription() { return DESCRIPTION; } \ bool IsGlobal() { return true; } \ - CGlobalModule* Load(void* p, const CString& sModName, \ + CGlobalModule* Load(ModHandle p, const CString& sModName, \ const CString& sModPath); \ void Unload(CGlobalModule* pMod); double GetVersion(); } \ double GetVersion() { return VERSION; } \ - CGlobalModule* Load(void* p, const CString& sModName, \ + CGlobalModule* Load(ModHandle p, const CString& sModName, \ const CString& sModPath) \ { return new CLASS(p, sModName, sModPath); } \ void Unload(CGlobalModule* pMod) { if (pMod) { delete pMod; } \ @@ -203,9 +205,9 @@ protected: class CModule { public: - CModule(void* pDLL, CUser* pUser, const CString& sModName, + CModule(ModHandle pDLL, CUser* pUser, const CString& sModName, const CString& sDataDir); - CModule(void* pDLL, const CString& sModName, const CString& sDataDir); + CModule(ModHandle pDLL, const CString& sModName, const CString& sDataDir); virtual ~CModule(); typedef enum { @@ -282,7 +284,7 @@ public: virtual EModRet OnTopic(CNick& Nick, CChan& Channel, CString& sTopic); virtual EModRet OnTimerAutoJoin(CChan& Channel); - void * GetDLL(); + ModHandle GetDLL(); static double GetCoreVersion() { return VERSION; } virtual bool PutIRC(const CString& sLine); @@ -355,7 +357,7 @@ protected: CString m_sDescription; vector m_vTimers; vector m_vSockets; - void* m_pDLL; + ModHandle m_pDLL; CSockManager* m_pManager; CUser* m_pUser; CClient* m_pClient; @@ -449,7 +451,7 @@ protected: class CGlobalModule : public CModule { public: - CGlobalModule(void* pDLL, const CString& sModName, + CGlobalModule(ModHandle pDLL, const CString& sModName, const CString &sDataDir) : CModule(pDLL, sModName, sDataDir) {} virtual ~CGlobalModule() {}