From 8b7a8766255c34ca608cfcdf477a4dc060be1460 Mon Sep 17 00:00:00 2001 From: prozacx Date: Fri, 5 Feb 2010 02:03:17 +0000 Subject: [PATCH] Added GetPath(), only print headers once, forward declare Cmodule git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1734 726aef4b-f618-498e-8847-2d620e286838 --- HTTPSock.cpp | 13 ++++++++++--- HTTPSock.h | 5 +++-- 2 files changed, 13 insertions(+), 5 deletions(-) diff --git a/HTTPSock.cpp b/HTTPSock.cpp index 4fccf853..c5d7a0bd 100644 --- a/HTTPSock.cpp +++ b/HTTPSock.cpp @@ -8,6 +8,7 @@ #ifdef _MODULES +#include "Modules.h" #include "HTTPSock.h" #include "znc.h" @@ -107,10 +108,12 @@ void CHTTPSock::GetPage() { return; } - if (PrintHeader(sPage.length())) { - Write(sPage); - Close(Csock::CLT_AFTERWRITE); + if (!SentHeader()) { + PrintHeader(sPage.length()); } + + Write(sPage); + Close(Csock::CLT_AFTERWRITE); } bool CHTTPSock::PrintFile(const CString& sFileName, CString sContentType) { @@ -216,6 +219,10 @@ void CHTTPSock::ParseURI() { m_sURI = m_sURI.Token(0, false, "?"); } +CString CHTTPSock::GetPath() const { + return m_sURI.Token(0, false, "?"); +} + void CHTTPSock::ParseParams(const CString& sParams) { m_msvsParams.clear(); diff --git a/HTTPSock.h b/HTTPSock.h index 1b6fee48..26fe25ac 100644 --- a/HTTPSock.h +++ b/HTTPSock.h @@ -11,7 +11,7 @@ #ifndef _HTTPSOCK_H #define _HTTPSOCK_H -#include "Modules.h" +class CModule; class CHTTPSock : public CSocket { public: @@ -49,7 +49,7 @@ public: void ParseParams(const CString& sParams); void ParseURI(); void GetPage(); - bool PrintFile(const CString& sFileName, CString sContentType = ""); + virtual bool PrintFile(const CString& sFileName, CString sContentType = ""); // Setters void SetDocRoot(const CString& s); @@ -60,6 +60,7 @@ public: bool HasParam(const CString& sName) const; CString GetRawParam(const CString& sName) const; CString GetParam(const CString& sName, const CString& sFilter = "\r\n") const; + CString GetPath() const; bool IsLoggedIn() const { return m_bLoggedIn; } const CString& GetDocRoot() const; const CString& GetUser() const;