'@' can exist in url path

This commit is contained in:
xcps 2016-06-30 07:59:58 -04:00
parent 0784934520
commit 28ab1230e2

View file

@ -81,7 +81,8 @@ namespace http {
}
/* user[:pass] */
pos_c = url.find('@', pos_p);
if (pos_c != std::string::npos) {
std::size_t pos_slash = url.find('/', pos_p);
if (pos_c != std::string::npos && (pos_slash == std::string::npos || pos_slash > pos_c)) {
std::size_t delim = url.find(':', pos_p);
if (delim != std::string::npos && delim < pos_c) {
user = url.substr(pos_p, delim - pos_p);
@ -90,7 +91,7 @@ namespace http {
} else {
user = url.substr(pos_p, pos_c - pos_p);
}
pos_p = pos_c + 1;
pos_p = pos_c + 1;
}
/* hostname[:port][/path] */
pos_c = url.find_first_of(":/", pos_p);