From: Gunnar Beutner <gunnar@beutner.name> Date: Tue, 11 Aug 2015 07:31:28 +0000 (+0200) Subject: Fix URL handlers X-Git-Tag: v2.4.0~433 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=73b72544ee2d73253d8babd557768bf268bfdae2;p=icinga2 Fix URL handlers refs #9768 --- diff --git a/lib/remote/httphandler.cpp b/lib/remote/httphandler.cpp index 8e42df13c..5b93e2cae 100644 --- a/lib/remote/httphandler.cpp +++ b/lib/remote/httphandler.cpp @@ -62,8 +62,9 @@ void HttpHandler::ProcessRequest(const ApiUser::Ptr& user, HttpRequest& request, { Dictionary::Ptr node = m_UrlTree; std::vector<HttpHandler::Ptr> handlers; + const std::vector<String>& path = request.RequestUrl->GetPath(); - BOOST_FOREACH(const String& elem, request.RequestUrl->GetPath()) { + for (int i = 0; i <= path.size(); i++) { Array::Ptr current_handlers = node->Get("handlers"); if (current_handlers) { @@ -80,7 +81,10 @@ void HttpHandler::ProcessRequest(const ApiUser::Ptr& user, HttpRequest& request, break; } - node = children->Get(elem); + if (i == path.size()) + break; + + node = children->Get(path[i]); if (!node) break;