mirror of
https://github.com/znc/znc.git
synced 2026-08-06 17:03:14 +02:00
Move CZNC::FindModPath() to CModules
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1611 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
+31
-1
@@ -961,6 +961,36 @@ void CModules::GetAvailableMods(set<CModInfo>& ssMods, bool bGlobal) {
|
||||
}
|
||||
}
|
||||
|
||||
bool CModules::FindModPath(const CString& sModule, CString& sModPath,
|
||||
CString& sDataPath) {
|
||||
CString sMod = sModule;
|
||||
CString sDir = sMod;
|
||||
if (sModule.find(".") == CString::npos)
|
||||
sMod += ".so";
|
||||
|
||||
sDataPath = CZNC::Get().GetCurPath() + "/modules/";
|
||||
sModPath = sDataPath + sMod;
|
||||
|
||||
if (!CFile::Exists(sModPath)) {
|
||||
sDataPath = CZNC::Get().GetModPath() + "/";
|
||||
sModPath = sDataPath + sMod;
|
||||
|
||||
if (!CFile::Exists(sModPath)) {
|
||||
sDataPath = _DATADIR_ + CString("/");
|
||||
sModPath = _MODDIR_ + CString("/") + sMod;
|
||||
|
||||
if (!CFile::Exists(sModPath)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sDataPath += sDir;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
ModHandle CModules::OpenModule(const CString& sModule, CString& sModPath, CString& sDataPath,
|
||||
bool &bVersionMismatch, bool &bIsGlobal, CString& sDesc, CString& sRetMsg)
|
||||
{
|
||||
@@ -971,7 +1001,7 @@ ModHandle CModules::OpenModule(const CString& sModule, CString& sModPath, CStrin
|
||||
}
|
||||
}
|
||||
|
||||
if (!CZNC::Get().FindModPath(sModule, sModPath, sDataPath)) {
|
||||
if (!FindModPath(sModule, sModPath, sDataPath)) {
|
||||
sRetMsg = "Unable to find module [" + sModule + "]";
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -463,6 +463,11 @@ public:
|
||||
bool GetModInfo(CModInfo& ModInfo, const CString& sModule, CString &sRetMsg);
|
||||
void GetAvailableMods(set<CModInfo>& ssMods, bool bGlobal = false);
|
||||
|
||||
// This returns the path to the .so and to the data dir
|
||||
// which is where static data (webadmin skins) are saved
|
||||
static bool FindModPath(const CString& sModule, CString& sModPath,
|
||||
CString& sDataPath);
|
||||
|
||||
private:
|
||||
ModHandle OpenModule(const CString& sModule, CString& sModPath, CString& sDataPath,
|
||||
bool &bVersionMismatch, bool &bIsGlobal, CString& sDesc, CString& sRetMsg);
|
||||
|
||||
+2
-2
@@ -242,7 +242,7 @@ public:
|
||||
{
|
||||
CString sModule, sTmp;
|
||||
|
||||
if (!CZNC::Get().FindModPath("modperl.pm", sModule, sTmp))
|
||||
if (!CModules::FindModPath("modperl.pm", sModule, sTmp))
|
||||
return false;
|
||||
|
||||
CString sBuffer, sScript;
|
||||
@@ -1060,7 +1060,7 @@ void CModPerl::LoadPerlMod(const CString & sModule)
|
||||
|
||||
CString sModPath, sTmp;
|
||||
|
||||
if (!CZNC::Get().FindModPath(sModule, sModPath, sTmp))
|
||||
if (!CModules::FindModPath(sModule, sModPath, sTmp))
|
||||
PutStatus("No such module " + sModule);
|
||||
else
|
||||
{
|
||||
|
||||
@@ -1672,35 +1672,6 @@ void CZNC::Broadcast(const CString& sMessage, bool bAdminOnly,
|
||||
}
|
||||
}
|
||||
|
||||
bool CZNC::FindModPath(const CString& sModule, CString& sModPath,
|
||||
CString& sDataPath) const {
|
||||
CString sMod = sModule;
|
||||
CString sDir = sMod;
|
||||
if (sModule.find(".") == CString::npos)
|
||||
sMod += ".so";
|
||||
|
||||
sDataPath = GetCurPath() + "/modules/";
|
||||
sModPath = sDataPath + sMod;
|
||||
|
||||
if (!CFile::Exists(sModPath)) {
|
||||
sDataPath = GetModPath() + "/";
|
||||
sModPath = sDataPath + sMod;
|
||||
|
||||
if (!CFile::Exists(sModPath)) {
|
||||
sDataPath = _DATADIR_ + CString("/");
|
||||
sModPath = _MODDIR_ + CString("/") + sMod;
|
||||
|
||||
if (!CFile::Exists(sModPath)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
sDataPath += sDir;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
CUser* CZNC::FindUser(const CString& sUsername) {
|
||||
map<CString,CUser*>::iterator it = m_msUsers.find(sUsername);
|
||||
|
||||
|
||||
@@ -49,10 +49,6 @@ public:
|
||||
static CString GetVersion();
|
||||
static CString GetTag(bool bIncludeVersion = true);
|
||||
CString GetUptime() const;
|
||||
// This returns the path to the .so and to the data dir
|
||||
// which is where static data (webadmin skins) are saved
|
||||
bool FindModPath(const CString& sModule, CString& sModPath,
|
||||
CString& sDataPath) const;
|
||||
void ClearVHosts();
|
||||
bool AddVHost(const CString& sHost);
|
||||
bool RemVHost(const CString& sHost);
|
||||
|
||||
Reference in New Issue
Block a user