mirror of https://github.com/Icinga/icinga2.git
parent
53f7481a5f
commit
d264a0dab8
|
@ -257,17 +257,26 @@ String Url::Format(bool print_credentials) const
|
||||||
else
|
else
|
||||||
param += "&";
|
param += "&";
|
||||||
|
|
||||||
|
// Just one (or one empty) value
|
||||||
|
if (kv.second.size() == 1) {
|
||||||
|
param += key;
|
||||||
|
param += kv.second[0].IsEmpty() ?
|
||||||
|
String() : "=" + Utility::EscapeString(kv.second[0], ACQUERY_ENCODE, false);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Array
|
||||||
String temp;
|
String temp;
|
||||||
for (const String s : kv.second) {
|
for (const String s : kv.second) {
|
||||||
if (!temp.IsEmpty())
|
if (!temp.IsEmpty())
|
||||||
temp += "&";
|
temp += "&";
|
||||||
|
|
||||||
temp += key;
|
temp += key;
|
||||||
|
|
||||||
if (kv.second.size() > 1)
|
if (kv.second.size() > 1)
|
||||||
temp += "[]";
|
temp += "[]";
|
||||||
|
|
||||||
temp += "=" + Utility::EscapeString(s, ACQUERY_ENCODE, false);
|
if (!s.IsEmpty())
|
||||||
|
temp += "=" + Utility::EscapeString(s, ACQUERY_ENCODE, false);
|
||||||
}
|
}
|
||||||
param += temp;
|
param += temp;
|
||||||
}
|
}
|
||||||
|
@ -375,7 +384,7 @@ bool Url::ParseQuery(const String& query)
|
||||||
String key = token.SubStr(0, pHelper);
|
String key = token.SubStr(0, pHelper);
|
||||||
String value = Empty;
|
String value = Empty;
|
||||||
|
|
||||||
if (pHelper != token.GetLength() - 1)
|
if (pHelper != String::NPos && pHelper != token.GetLength() - 1)
|
||||||
value = token.SubStr(pHelper+1);
|
value = token.SubStr(pHelper+1);
|
||||||
|
|
||||||
if (!ValidateToken(value, ACQUERY))
|
if (!ValidateToken(value, ACQUERY))
|
||||||
|
|
|
@ -91,6 +91,7 @@ BOOST_AUTO_TEST_CASE(format)
|
||||||
|
|
||||||
url = new Url("/foo/bar/index.php?blaka");
|
url = new Url("/foo/bar/index.php?blaka");
|
||||||
BOOST_CHECK(new Url(url->Format()));
|
BOOST_CHECK(new Url(url->Format()));
|
||||||
|
BOOST_CHECK(url->Format() == "/foo/bar/index.php?blaka");
|
||||||
|
|
||||||
url = new Url("/");
|
url = new Url("/");
|
||||||
BOOST_CHECK(url->Format() == "/");
|
BOOST_CHECK(url->Format() == "/");
|
||||||
|
|
Loading…
Reference in New Issue