diff --git a/HTTPSock.cpp b/HTTPSock.cpp index e0d92cdd..68251674 100644 --- a/HTTPSock.cpp +++ b/HTTPSock.cpp @@ -125,15 +125,12 @@ void CHTTPSock::ReadLine(const CString& sData) { } void CHTTPSock::GetPage() { - CString sPage; - DEBUG("Page Request [" << m_sURI << "] "); - if (!OnPageRequest(m_sURI, sPage)) { - PrintNotFound(); - return; - } + OnPageRequest(m_sURI); +} +void CHTTPSock::PrintPage(const CString& sPage) { if (!SentHeader()) { PrintHeader(sPage.length()); } diff --git a/HTTPSock.h b/HTTPSock.h index 5f73c41e..bc3e7173 100644 --- a/HTTPSock.h +++ b/HTTPSock.h @@ -31,7 +31,7 @@ public: // Hooks virtual bool ForceLogin(); virtual bool OnLogin(const CString& sUser, const CString& sPass); - virtual bool OnPageRequest(const CString& sURI, CString& sPageRet) = 0; + virtual void OnPageRequest(const CString& sURI) = 0; virtual bool PrintFile(const CString& sFileName, CString sContentType = ""); // !Hooks @@ -77,6 +77,7 @@ public: // !Getters private: protected: + void PrintPage(const CString& sPage); void Init(); bool m_bSentHeader; diff --git a/WebModules.cpp b/WebModules.cpp index fd6cc026..b63abd56 100644 --- a/WebModules.cpp +++ b/WebModules.cpp @@ -493,7 +493,16 @@ bool CWebSock::SetCookie(const CString& sKey, const CString& sValue) { return CHTTPSock::SetCookie(sKey, sValue); } -bool CWebSock::OnPageRequest(const CString& sURI, CString& sPageRet) { +void CWebSock::OnPageRequest(const CString& sURI) { + CString sPageRet; + if (OnPageRequestInternal(sURI, sPageRet)) { + PrintPage(sPageRet); + } else { + PrintNotFound(); + } +} + +bool CWebSock::OnPageRequestInternal(const CString& sURI, CString& sPageRet) { DEBUG("CWebSock::OnPageRequest(" + sURI + ")"); m_spSession = GetSession(); SetCookie("SessionId", m_spSession->GetId()); diff --git a/WebModules.h b/WebModules.h index cab73253..2f4465db 100644 --- a/WebModules.h +++ b/WebModules.h @@ -118,7 +118,7 @@ public: virtual bool ForceLogin(); virtual bool OnLogin(const CString& sUser, const CString& sPass); - virtual bool OnPageRequest(const CString& sURI, CString& sPageRet); + virtual void OnPageRequest(const CString& sURI); void ParsePath(); // This parses the path portion of the url into some member vars CModule* ResolveModule(); @@ -158,6 +158,8 @@ public: } private: + bool OnPageRequestInternal(const CString& sURI, CString& sPageRet); + bool m_bPathsSet; CTemplate m_Template; CSmartPtr m_spAuth;