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:
psychon
2009-08-23 11:05:22 +00:00
parent 495c196a82
commit 6a36100447
5 changed files with 38 additions and 36 deletions
+31 -1
View File
@@ -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;
}
+5
View File
@@ -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
View File
@@ -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
{
-29
View File
@@ -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);
-4
View File
@@ -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);