From f8462bffdd93733c404eb82d4995eb57db22862e Mon Sep 17 00:00:00 2001 From: psychon Date: Thu, 16 Oct 2008 18:11:18 +0000 Subject: [PATCH] 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 --- modules/webadmin.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index d99f5a20..3de22f89 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -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 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);