|
|
@ -32,7 +32,7 @@ |
|
|
|
#include <stdlib.h> /* malloc() */ |
|
|
|
#include <string.h> /* strncpy() */ |
|
|
|
#include <strings.h> /* strncasecmp() */ |
|
|
|
#include <ctype.h> /* isblank() */ |
|
|
|
#include <ctype.h> /* isblank(), isdigit() */ |
|
|
|
|
|
|
|
#include "http.h" |
|
|
|
#include "protocol.h" |
|
|
@ -80,6 +80,7 @@ parse_http_header(const char *data, size_t data_len, char **hostname) |
|
|
|
/* |
|
|
|
* if the user specifies the port in the request, it is included here. |
|
|
|
* Host: example.com:80 |
|
|
|
* Host: [2001:db8::1]:8080 |
|
|
|
* so we trim off port portion |
|
|
|
*/ |
|
|
|
for (i = result - 1; i >= 0; i--) |
|
|
@ -87,6 +88,8 @@ parse_http_header(const char *data, size_t data_len, char **hostname) |
|
|
|
(*hostname)[i] = '\0'; |
|
|
|
result = i; |
|
|
|
break; |
|
|
|
} else if (!isdigit((*hostname)[i])) { |
|
|
|
break; |
|
|
|
} |
|
|
|
|
|
|
|
return result; |
|
|
|