in-addr-util: make in_addr_default_prefix_from_string() or friend set 0 to prefixlen when family == AF_INET6 (#10665)
Follow-up for a4798d4e6d
.
Fixes #10662.
This commit is contained in:
parent
13d8a53aae
commit
c6d8bbb66e
|
@ -531,10 +531,13 @@ int in_addr_prefix_from_string_internal(
|
|||
r = in_addr_parse_prefixlen(family, e+1, &k);
|
||||
if (r < 0)
|
||||
return r;
|
||||
} else if (family == AF_INET && use_default_prefixlen) {
|
||||
} else if (use_default_prefixlen) {
|
||||
if (family == AF_INET) {
|
||||
r = in4_addr_default_prefixlen(&buffer.in, &k);
|
||||
if (r < 0)
|
||||
return r;
|
||||
} else
|
||||
k = 0;
|
||||
} else
|
||||
k = FAMILY_ADDRESS_SIZE(family) * 8;
|
||||
|
||||
|
@ -579,10 +582,13 @@ int in_addr_prefix_from_string_auto_internal(
|
|||
r = in_addr_parse_prefixlen(family, e+1, &k);
|
||||
if (r < 0)
|
||||
return r;
|
||||
} else if (family == AF_INET && use_default_prefixlen) {
|
||||
} else if (use_default_prefixlen) {
|
||||
if (family == AF_INET) {
|
||||
r = in4_addr_default_prefixlen(&buffer.in, &k);
|
||||
if (r < 0)
|
||||
return r;
|
||||
} else
|
||||
k = 0;
|
||||
} else
|
||||
k = FAMILY_ADDRESS_SIZE(family) * 8;
|
||||
|
||||
|
|
|
@ -199,7 +199,7 @@ static void test_config_parse_address(void) {
|
|||
test_config_parse_address_one("", AF_INET6, 0, NULL, 0);
|
||||
test_config_parse_address_one("/", AF_INET6, 0, NULL, 0);
|
||||
test_config_parse_address_one("/8", AF_INET6, 0, NULL, 0);
|
||||
test_config_parse_address_one("::1", AF_INET6, 1, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 128);
|
||||
test_config_parse_address_one("::1", AF_INET6, 1, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 0);
|
||||
test_config_parse_address_one("::1/0", AF_INET6, 1, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 0);
|
||||
test_config_parse_address_one("::1/1", AF_INET6, 1, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 1);
|
||||
test_config_parse_address_one("::1/2", AF_INET6, 1, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 2);
|
||||
|
|
|
@ -69,7 +69,7 @@ int main(int argc, char *argv[]) {
|
|||
test_in_addr_prefix_from_string("", AF_INET6, -EINVAL, NULL, 0, true);
|
||||
test_in_addr_prefix_from_string("/", AF_INET6, -EINVAL, NULL, 0, true);
|
||||
test_in_addr_prefix_from_string("/8", AF_INET6, -EINVAL, NULL, 0, true);
|
||||
test_in_addr_prefix_from_string("::1", AF_INET6, 0, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 128, true);
|
||||
test_in_addr_prefix_from_string("::1", AF_INET6, 0, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 0, true);
|
||||
test_in_addr_prefix_from_string("::1/0", AF_INET6, 0, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 0, true);
|
||||
test_in_addr_prefix_from_string("::1/1", AF_INET6, 0, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 1, true);
|
||||
test_in_addr_prefix_from_string("::1/2", AF_INET6, 0, &(union in_addr_union) { .in6 = IN6ADDR_LOOPBACK_INIT }, 2, true);
|
||||
|
|
Loading…
Reference in a new issue