mirror of
https://github.com/znc/znc.git
synced 2026-03-28 17:42:41 +01:00
Fix webadmin to work with symlinks in the skins directory.
If dir is a symlink to a directory dir/.. is not the same as . which broke webadmin. git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1252 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -43,6 +43,7 @@ public:
|
||||
virtual bool OnPageRequest(const CString& sURI, CString& sPageRet);
|
||||
virtual bool OnLogin(const CString& sUser, const CString& sPass);
|
||||
|
||||
CString GetAvailSkinsDir();
|
||||
CString GetSkinDir();
|
||||
void PrintPage(CString& sPageRet, const CString& sTmplName);
|
||||
|
||||
@@ -207,9 +208,12 @@ private:
|
||||
map<CString, unsigned int> m_suSwitchCounters;
|
||||
};
|
||||
|
||||
CString CWebAdminSock::GetAvailSkinsDir() {
|
||||
return m_pModule->GetModDataDir() + "/skins/";
|
||||
}
|
||||
|
||||
CString CWebAdminSock::GetSkinDir() {
|
||||
CString sSkinDir = m_pModule->GetModDataDir() + "/skins/"
|
||||
+ GetModule()->GetSkinName() + "/";
|
||||
CString sSkinDir = GetAvailSkinsDir() + GetModule()->GetSkinName() + "/";
|
||||
|
||||
if (CFile::IsDir(sSkinDir)) {
|
||||
return sSkinDir;
|
||||
@@ -520,7 +524,7 @@ bool CWebAdminSock::SettingsPage(CString& sPageRet) {
|
||||
#endif
|
||||
}
|
||||
|
||||
CString sDir(GetSkinDir() + "/..");
|
||||
CString sDir(GetAvailSkinsDir());
|
||||
|
||||
if (CFile::IsDir(sDir)) {
|
||||
CDir Dir(sDir);
|
||||
|
||||
Reference in New Issue
Block a user