mirror of
https://github.com/PurpleI2P/i2pd
synced 2024-11-10 00:00:29 +03:00
* HTTP.cpp : fix parse_header_line (#501)
This commit is contained in:
parent
2e1a9a8df9
commit
43a90d7b98
3
HTTP.cpp
3
HTTP.cpp
@ -45,9 +45,10 @@ namespace http {
|
||||
bool parse_header_line(const std::string & line, std::map<std::string, std::string> & headers) {
|
||||
std::size_t pos = 0;
|
||||
std::size_t len = 2; /* strlen(": ") */
|
||||
std::size_t max = line.length();
|
||||
if ((pos = line.find(": ", pos)) == std::string::npos)
|
||||
return false;
|
||||
while (isspace(line.at(pos + len)))
|
||||
while ((pos + len) < max && isspace(line.at(pos + len)))
|
||||
len++;
|
||||
std::string name = line.substr(0, pos);
|
||||
std::string value = line.substr(pos + len);
|
||||
|
@ -68,6 +68,7 @@ int main() {
|
||||
buf =
|
||||
"GET http://inr.i2p HTTP/1.1\r\n"
|
||||
"Host: stats.i2p\r\n"
|
||||
"Accept-Encoding: \r\n"
|
||||
"Accept: */*\r\n"
|
||||
"\r\n";
|
||||
len = strlen(buf);
|
||||
@ -76,9 +77,13 @@ int main() {
|
||||
assert(req->method == "GET");
|
||||
assert(req->uri == "http://inr.i2p");
|
||||
assert(req->host == "stats.i2p");
|
||||
assert(req->headers.size() == 2);
|
||||
assert(req->headers.size() == 3);
|
||||
assert(req->headers.count("Host") == 1);
|
||||
assert(req->headers.count("Accept") == 1);
|
||||
assert(req->headers.count("Accept-Encoding") == 1);
|
||||
assert(req->headers["Host"] == "stats.i2p");
|
||||
assert(req->headers["Accept"] == "*/*");
|
||||
assert(req->headers["Accept-Encoding"] == "");
|
||||
delete req;
|
||||
|
||||
return 0;
|
||||
|
Loading…
Reference in New Issue
Block a user