From f5e2c43abe9477fba6255c734faf2822e7f2f9c5 Mon Sep 17 00:00:00 2001 From: Roland Reichwein Date: Mon, 6 Apr 2020 21:54:33 +0200 Subject: Fix DocRoot to match longest prefix --- config.cpp | 7 +++++-- webserver.conf | 2 +- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/config.cpp b/config.cpp index 6dbd8ee..baf611b 100644 --- a/config.cpp +++ b/config.cpp @@ -189,6 +189,7 @@ std::string Config::DocRoot(const Socket& socket, const std::string& requested_h { // TODO: speed this up std::string host{requested_host}; + std::string result; auto pos {host.find(':')}; if (pos != host.npos) { @@ -201,7 +202,9 @@ std::string Config::DocRoot(const Socket& socket, const std::string& requested_h if (m_host == host) { for (const auto& path: site.paths) { if (boost::starts_with(requested_path, path.requested)) { - return path.params.at("target"); + const auto& root { path.params.at("target")}; + if (root.size() > result.size()) + result = root; } } } @@ -209,6 +212,6 @@ std::string Config::DocRoot(const Socket& socket, const std::string& requested_h } } - return ""; + return result; } diff --git a/webserver.conf b/webserver.conf index 7749739..c41e7b2 100644 --- a/webserver.conf +++ b/webserver.conf @@ -6,7 +6,7 @@ bf/usr/lib/webserver/plugins /usr/local/lib/webserver/plugins --> - plugins + plugins-examples antcom.de -- cgit v1.2.3