diff options
| author | Roland Reichwein <mail@reichwein.it> | 2020-04-06 21:54:33 +0200 | 
|---|---|---|
| committer | Roland Reichwein <mail@reichwein.it> | 2020-04-06 21:54:33 +0200 | 
| commit | f5e2c43abe9477fba6255c734faf2822e7f2f9c5 (patch) | |
| tree | 7c112598eb732f14a44299b12bbc48ee07521a60 | |
| parent | 0ff6671cec0bc8db106f094400425ada5d4faf7a (diff) | |
Fix DocRoot to match longest prefix
| -rw-r--r-- | config.cpp | 7 | ||||
| -rw-r--r-- | webserver.conf | 2 | 
2 files changed, 6 insertions, 3 deletions
@@ -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 @@   <plugin-directory><a c="d">b<e>f</e></a>/usr/lib/webserver/plugins</plugin-directory>   <plugin-directory>/usr/local/lib/webserver/plugins</plugin-directory>   --> - <plugin-directory>plugins</plugin-directory> + <plugin-directory>plugins-examples</plugin-directory>   <sites>    <site>     <name>antcom.de</name>  | 
