|
@@ -413,24 +413,36 @@ START_TEST(test_parse_port_string)
|
|
"[::1]:123",
|
|
"[::1]:123",
|
|
"[::]:80",
|
|
"[::]:80",
|
|
"[3ffe:2a00:100:7031::1]:900",
|
|
"[3ffe:2a00:100:7031::1]:900",
|
|
|
|
+ "+80",
|
|
#endif
|
|
#endif
|
|
NULL };
|
|
NULL };
|
|
static const char *invalid[] = {
|
|
static const char *invalid[] = {
|
|
"99999", "1k", "1.2.3", "1.2.3.4:", "1.2.3.4:2p", NULL};
|
|
"99999", "1k", "1.2.3", "1.2.3.4:", "1.2.3.4:2p", NULL};
|
|
struct socket so;
|
|
struct socket so;
|
|
struct vec vec;
|
|
struct vec vec;
|
|
|
|
+ int ip_family;
|
|
int i;
|
|
int i;
|
|
|
|
|
|
for (i = 0; valid[i] != NULL; i++) {
|
|
for (i = 0; valid[i] != NULL; i++) {
|
|
vec.ptr = valid[i];
|
|
vec.ptr = valid[i];
|
|
vec.len = strlen(vec.ptr);
|
|
vec.len = strlen(vec.ptr);
|
|
- ck_assert(parse_port_string(&vec, &so) != 0);
|
|
|
|
|
|
+ ip_family = 123;
|
|
|
|
+ ck_assert_int_ne(parse_port_string(&vec, &so, &ip_family), 0);
|
|
|
|
+ if (i < 7) {
|
|
|
|
+ ck_assert_int_eq(ip_family, 4);
|
|
|
|
+ } else if (i < 7) {
|
|
|
|
+ ck_assert_int_eq(ip_family, 6);
|
|
|
|
+ } else {
|
|
|
|
+ ck_assert_int_eq(ip_family, 4 + 6);
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
for (i = 0; invalid[i] != NULL; i++) {
|
|
for (i = 0; invalid[i] != NULL; i++) {
|
|
vec.ptr = invalid[i];
|
|
vec.ptr = invalid[i];
|
|
vec.len = strlen(vec.ptr);
|
|
vec.len = strlen(vec.ptr);
|
|
- ck_assert(parse_port_string(&vec, &so) == 0);
|
|
|
|
|
|
+ ip_family = 123;
|
|
|
|
+ ck_assert_int_eq(parse_port_string(&vec, &so, &ip_family), 0);
|
|
|
|
+ ck_assert_int_eq(ip_family, 0);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
END_TEST
|
|
END_TEST
|
|
@@ -712,6 +724,7 @@ MAIN_PRIVATE(void)
|
|
test_mg_vsnprintf(0);
|
|
test_mg_vsnprintf(0);
|
|
test_remove_double_dots_and_double_slashes(0);
|
|
test_remove_double_dots_and_double_slashes(0);
|
|
test_parse_date_string(0);
|
|
test_parse_date_string(0);
|
|
|
|
+ test_parse_port_string(0);
|
|
test_parse_http_message(0);
|
|
test_parse_http_message(0);
|
|
}
|
|
}
|
|
|
|
|