in src/Url.cpp [81:109]
string aws::iot::securedtunneling::url::url_decode(const string &url_s) {
{
string out;
out.clear();
out.reserve(url_s.size());
for (std::size_t i = 0; i < url_s.size(); ++i) {
if (url_s[i] == '%') {
if (i + 3 <= url_s.size()) {
int value = 0;
std::istringstream is(url_s.substr(i + 1, 2));
if (is >> std::hex >> value) {
out += static_cast<char>(value);
i += 2;
} else {
throw invalid_argument("Invalid Hex number");
}
} else {
throw invalid_argument("Invalid URL token");
}
}
else if (url_s[i] == '+') {
out += ' ';
} else {
out += url_s[i];
}
}
return out;
}
}