mirror of
				https://github.com/PurpleI2P/i2pd.git
				synced 2025-11-04 08:30:46 +00:00 
			
		
		
		
	* HTTP.cpp : fix parse_header_line (#501)
This commit is contained in:
		
							parent
							
								
									2e1a9a8df9
								
							
						
					
					
						commit
						43a90d7b98
					
				
					 2 changed files with 8 additions and 2 deletions
				
			
		
							
								
								
									
										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…
	
	Add table
		Add a link
		
	
		Reference in a new issue