996
996
if (evhttp_add_header(&headers, "One\r", "Two") != -1)
998
if (evhttp_add_header(&headers, "One", "Two") != 0)
1000
if (evhttp_add_header(&headers, "One", "Two\r\n Three") != 0)
1002
if (evhttp_add_header(&headers, "One\r", "Two") != -1)
999
1004
if (evhttp_add_header(&headers, "One\n", "Two") != -1)
1002
1006
if (evhttp_add_header(&headers, "One", "Two\r") != -1)
1005
1008
if (evhttp_add_header(&headers, "One", "Two\n") != -1)
1020
static int validate_header(
1021
const struct evkeyvalq* headers,
1022
const char *key, const char *value)
1024
const char *real_val = evhttp_find_header(headers, key);
1025
if (real_val == NULL)
1027
if (strcmp(real_val, value) != 0)
1033
http_parse_query_test(void)
1035
struct evkeyvalq headers;
1037
fprintf(stdout, "Testing HTTP query parsing: ");
1039
TAILQ_INIT(&headers);
1041
evhttp_parse_query("http://www.test.com/?q=test", &headers);
1042
if (validate_header(&headers, "q", "test") != 0)
1044
evhttp_clear_headers(&headers);
1046
evhttp_parse_query("http://www.test.com/?q=test&foo=bar", &headers);
1047
if (validate_header(&headers, "q", "test") != 0)
1049
if (validate_header(&headers, "foo", "bar") != 0)
1051
evhttp_clear_headers(&headers);
1053
evhttp_parse_query("http://www.test.com/?q=test+foo", &headers);
1054
if (validate_header(&headers, "q", "test foo") != 0)
1056
evhttp_clear_headers(&headers);
1058
evhttp_parse_query("http://www.test.com/?q=test%0Afoo", &headers);
1059
if (validate_header(&headers, "q", "test\nfoo") != 0)
1061
evhttp_clear_headers(&headers);
1063
evhttp_parse_query("http://www.test.com/?q=test%0Dfoo", &headers);
1064
if (validate_header(&headers, "q", "test\rfoo") != 0)
1066
evhttp_clear_headers(&headers);
1068
fprintf(stdout, "OK\n");
1071
fprintf(stdout, "FAILED\n");
1018
1076
http_base_test(void)