summaryrefslogtreecommitdiff
path: root/src/modules/m_httpd_stats.cpp
diff options
context:
space:
mode:
authorAttila Molnar <attilamolnar@hush.com>2015-02-12 16:35:02 +0100
committerAttila Molnar <attilamolnar@hush.com>2015-02-12 16:35:02 +0100
commitae6967b8b30ebc956e3158127ecba5d01dc09204 (patch)
treeb0940ea9cbd75acfdaa655b3a9975f67e3f8ae48 /src/modules/m_httpd_stats.cpp
parenta7aa76f17ac22897e08558f0f78d891d3d4f7de6 (diff)
parent7918febc630d7d6f94fda1a918fe7b98c2d0e742 (diff)
Merge branch 'master+crossmodevents'
Diffstat (limited to 'src/modules/m_httpd_stats.cpp')
-rw-r--r--src/modules/m_httpd_stats.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/src/modules/m_httpd_stats.cpp b/src/modules/m_httpd_stats.cpp
index 35a4b0fb2..ad0b4bb72 100644
--- a/src/modules/m_httpd_stats.cpp
+++ b/src/modules/m_httpd_stats.cpp
@@ -25,14 +25,15 @@
#include "modules/httpd.h"
#include "xline.h"
-class ModuleHttpStats : public Module
+class ModuleHttpStats : public Module, public HTTPRequestEventListener
{
static const insp::flat_map<char, char const*>& entities;
HTTPdAPI API;
public:
ModuleHttpStats()
- : API(this)
+ : HTTPRequestEventListener(this)
+ , API(this)
{
}
@@ -87,14 +88,12 @@ class ModuleHttpStats : public Module
data << "</metadata>";
}
- void OnEvent(Event& event) CXX11_OVERRIDE
+ ModResult HandleRequest(HTTPRequest* http)
{
std::stringstream data("");
- if (event.id == "httpd_url")
{
ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Handling httpd event");
- HTTPRequest* http = (HTTPRequest*)&event;
if ((http->GetURI() == "/stats") || (http->GetURI() == "/stats/"))
{
@@ -225,8 +224,15 @@ class ModuleHttpStats : public Module
response.headers.SetHeader("X-Powered-By", MODNAME);
response.headers.SetHeader("Content-Type", "text/xml");
API->SendResponse(response);
+ return MOD_RES_DENY; // Handled
}
}
+ return MOD_RES_PASSTHRU;
+ }
+
+ ModResult OnHTTPRequest(HTTPRequest& req) CXX11_OVERRIDE
+ {
+ return HandleRequest(&req);
}
Version GetVersion() CXX11_OVERRIDE