X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fmodules%2Fm_httpd_acl.cpp;h=533e3c578807e2acd012668407d50ca05d8ce522;hb=3151d60c1ecc9462e4c335282ee6c31672f45111;hp=49710c2194dd645cf5aac419dcde43a0774ed026;hpb=4fbd6681fedbff9b4cb04cc774f785cbe8b5c35b;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/modules/m_httpd_acl.cpp b/src/modules/m_httpd_acl.cpp index 49710c219..533e3c578 100644 --- a/src/modules/m_httpd_acl.cpp +++ b/src/modules/m_httpd_acl.cpp @@ -1,8 +1,13 @@ /* * InspIRCd -- Internet Relay Chat Daemon * + * Copyright (C) 2018-2019 linuxdaemon + * Copyright (C) 2013, 2017-2018, 2020 Sadie Powell + * Copyright (C) 2013, 2015 Attila Molnar + * Copyright (C) 2012, 2019 Robby * Copyright (C) 2009-2010 Daniel De Graaf - * Copyright (C) 2008 Craig Edwards + * Copyright (C) 2008, 2010 Craig Edwards + * Copyright (C) 2008 Robin Burchell * * This file is part of InspIRCd. InspIRCd is free software: you can * redistribute it and/or modify it under the terms of the GNU General Public @@ -38,7 +43,7 @@ class HTTPACL class ModuleHTTPAccessList : public Module, public HTTPACLEventListener { - std::string stylesheet; + private: std::vector acl_list; HTTPdAPI API; @@ -98,7 +103,13 @@ class ModuleHTTPAccessList : public Module, public HTTPACLEventListener { ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "BlockAccess (%u)", returnval); - std::stringstream data("Access to this resource is denied by an access control list. Please contact your IRC administrator."); + std::stringstream data; + data << "" + << "

Error " << returnval << "

" + << "

Access to this resource is denied by an access control list.

" + << "

Please contact your IRC administrator.


" + << "Powered by InspIRCd"; + HTTPDocumentResponse response(this, *http, &data, returnval); response.headers.SetHeader("X-Powered-By", MODNAME); if (!extraheaderkey.empty()) @@ -113,7 +124,7 @@ class ModuleHTTPAccessList : public Module, public HTTPACLEventListener for (std::vector::const_iterator this_acl = acl_list.begin(); this_acl != acl_list.end(); ++this_acl) { - if (InspIRCd::Match(http->GetURI(), this_acl->path, ascii_case_insensitive_map)) + if (InspIRCd::Match(http->GetPath(), this_acl->path, ascii_case_insensitive_map)) { if (!this_acl->blacklist.empty()) { @@ -126,7 +137,7 @@ class ModuleHTTPAccessList : public Module, public HTTPACLEventListener if (InspIRCd::Match(http->GetIP(), entry, ascii_case_insensitive_map)) { ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Denying access to blacklisted resource %s (matched by pattern %s) from ip %s (matched by entry %s)", - http->GetURI().c_str(), this_acl->path.c_str(), http->GetIP().c_str(), entry.c_str()); + http->GetPath().c_str(), this_acl->path.c_str(), http->GetIP().c_str(), entry.c_str()); BlockAccess(http, 403); return false; } @@ -148,7 +159,7 @@ class ModuleHTTPAccessList : public Module, public HTTPACLEventListener if (!allow_access) { ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Denying access to whitelisted resource %s (matched by pattern %s) from ip %s (Not in whitelist)", - http->GetURI().c_str(), this_acl->path.c_str(), http->GetIP().c_str()); + http->GetPath().c_str(), this_acl->path.c_str(), http->GetIP().c_str()); BlockAccess(http, 403); return false; } @@ -157,7 +168,7 @@ class ModuleHTTPAccessList : public Module, public HTTPACLEventListener { /* Password auth, first look to see if we have a basic authentication header */ ServerInstance->Logs->Log(MODNAME, LOG_DEBUG, "Checking HTTP auth password for resource %s (matched by pattern %s) from ip %s, against username %s", - http->GetURI().c_str(), this_acl->path.c_str(), http->GetIP().c_str(), this_acl->username.c_str()); + http->GetPath().c_str(), this_acl->path.c_str(), http->GetIP().c_str(), this_acl->username.c_str()); if (http->headers->IsSet("Authorization")) { @@ -225,7 +236,7 @@ class ModuleHTTPAccessList : public Module, public HTTPACLEventListener Version GetVersion() CXX11_OVERRIDE { - return Version("Provides access control lists (passwording of resources, ip restrictions etc) to m_httpd dependent modules", VF_VENDOR); + return Version("Allows the server administrator to control who can access resources served over HTTP with the httpd module.", VF_VENDOR); } };