]> granicus.if.org Git - icinga2/commitdiff
Fix URL handlers
authorGunnar Beutner <gunnar@beutner.name>
Tue, 11 Aug 2015 07:31:28 +0000 (09:31 +0200)
committerGunnar Beutner <gunnar@beutner.name>
Tue, 11 Aug 2015 07:31:56 +0000 (09:31 +0200)
refs #9768

lib/remote/httphandler.cpp

index 8e42df13c8d6ccbf35b3a71d049df6bdd35179da..5b93e2cae0b3317bd57e5408ed7c071ed78e2978 100644 (file)
@@ -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;