]> granicus.if.org Git - icinga2/commitdiff
Fix check_nscp_api for multiple URL parameter usage 6207/head
authorMichael Friedrich <michael.friedrich@icinga.com>
Fri, 6 Apr 2018 13:23:31 +0000 (15:23 +0200)
committerMichael Friedrich <michael.friedrich@icinga.com>
Fri, 6 Apr 2018 13:23:31 +0000 (15:23 +0200)
NSClient++ doesn't support the bracket notation.

refs #5706

plugins/check_nscp_api.cpp

index 133bd9d5da46a06630d757b1dd6afffeb4c300f9..333b217ab7531ad6745f58e00e9fd57af4bf1689 100644 (file)
@@ -17,7 +17,7 @@
  * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.             *
  ******************************************************************************/
 
-#define VERSION "1.0.0"
+#define VERSION "1.0.1"
 
 #include "remote/httpclientconnection.hpp"
 #include "remote/httprequest.hpp"
@@ -88,9 +88,13 @@ static Dictionary::Ptr QueryEndpoint(const String& host, const String& port, con
 
                // Url() will call Utillity::UnescapeString() which will thrown an exception if it finds a lonely %
                req->RequestUrl = new Url(endpoint);
+
+               // NSClient++ uses `time=1m&time=5m` instead of `time[]=1m&time[]=5m`
+               req->RequestUrl->SetArrayFormatUseBrackets(false);
+
                req->AddHeader("password", password);
                if (l_Debug)
-                       std::cout << "Sending request to 'https://" << host << ":" << port << req->RequestUrl->Format() << "'\n";
+                       std::cout << "Sending request to 'https://" << host << ":" << port << req->RequestUrl->Format(false, false) << "'\n";
 
                // Submits the request. The 'ResultHttpCompletionCallback' is called once the HttpRequest receives an answer,
                // which then sets 'ready' to true