|
|
|
@ -153,42 +153,42 @@ static void test_request_http_request_parse(request_st * const r)
|
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: www.example.org\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("www.example.org"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("www.example.org"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 0, |
|
|
|
|
"IPv4 address", |
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: 127.0.0.1\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("127.0.0.1"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("127.0.0.1"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 0, |
|
|
|
|
"IPv6 address", |
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: [::1]\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("[::1]"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("[::1]"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 0, |
|
|
|
|
"hostname + port", |
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: www.example.org:80\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("www.example.org"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("www.example.org"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 0, |
|
|
|
|
"IPv4 address + port", |
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: 127.0.0.1:80\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("127.0.0.1"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("127.0.0.1"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 0, |
|
|
|
|
"IPv6 address + port", |
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: [::1]:80\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("[::1]"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("[::1]"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 400, |
|
|
|
|
"directory traversal", |
|
|
|
@ -207,7 +207,7 @@ static void test_request_http_request_parse(request_st * const r)
|
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: jsdh.sfdg.sdfg.\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("jsdh.sfdg.sdfg"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("jsdh.sfdg.sdfg"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 400, |
|
|
|
|
"leading dot", |
|
|
|
@ -250,7 +250,7 @@ static void test_request_http_request_parse(request_st * const r)
|
|
|
|
|
CONST_STR_LEN("GET / HTTP/1.0\r\n" |
|
|
|
|
"Host: a.b-c.d123\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("a.b-c.d123"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("a.b-c.d123"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 400, |
|
|
|
|
"leading dash", |
|
|
|
@ -395,7 +395,7 @@ static void test_request_http_request_parse(request_st * const r)
|
|
|
|
|
"absolute URI", |
|
|
|
|
CONST_STR_LEN("GET http://www.example.org/ HTTP/1.0\r\n" |
|
|
|
|
"\r\n")); |
|
|
|
|
assert(buffer_eq_slen(r->http_host, CONST_STR_LEN("www.example.org"))); |
|
|
|
|
assert(r->http_host && buffer_eq_slen(r->http_host, CONST_STR_LEN("www.example.org"))); |
|
|
|
|
assert(buffer_eq_slen(&r->target, CONST_STR_LEN("/"))); |
|
|
|
|
|
|
|
|
|
run_http_request_parse(r, __LINE__, 400, |
|
|
|
|