summaryrefslogtreecommitdiff
path: root/src/network
diff options
context:
space:
mode:
authorLuca Boccassi <bluca@debian.org>2023-01-19 21:06:08 +0000
committerGitHub <noreply@github.com>2023-01-19 21:06:08 +0000
commita98d69f0af505b4ccdd219f5d73dc72e9c063cc4 (patch)
tree947f19629ddf9d76addd8ab4039f3bad8b0be47e /src/network
parentb9f976fb45635e09cd709dbedd0afb03d4b73c05 (diff)
parent580586291fa17d9a5e98de9dce3658baed163a18 (diff)
downloadsystemd-a98d69f0af505b4ccdd219f5d73dc72e9c063cc4.tar.gz
Merge pull request #26105 from yuwata/network-config-parse-address-make-prefix-length-full
network: make config_parse_address() assume full prefix length
Diffstat (limited to 'src/network')
-rw-r--r--src/network/networkd-address.c11
-rw-r--r--src/network/test-networkd-conf.c4
2 files changed, 7 insertions, 8 deletions
diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c
index c691a5e057..b8b9dc153b 100644
--- a/src/network/networkd-address.c
+++ b/src/network/networkd-address.c
@@ -1683,12 +1683,11 @@ int config_parse_address(
/* Address=address/prefixlen */
r = in_addr_prefix_from_string_auto_internal(rvalue, PREFIXLEN_REFUSE, &f, &buffer, &prefixlen);
if (r == -ENOANO) {
- log_syntax(unit, LOG_WARNING, filename, line, r,
- "An address '%s' is specified without prefix length. "
- "The behavior of parsing addresses without prefix length will be changed in the future release. "
- "Please specify prefix length explicitly.", rvalue);
-
- r = in_addr_prefix_from_string_auto_internal(rvalue, PREFIXLEN_LEGACY, &f, &buffer, &prefixlen);
+ r = in_addr_prefix_from_string_auto(rvalue, &f, &buffer, &prefixlen);
+ if (r >= 0)
+ log_syntax(unit, LOG_WARNING, filename, line, r,
+ "An address '%s' is specified without prefix length. Assuming the prefix length is %u."
+ "Please specify the prefix length explicitly.", rvalue, prefixlen);
}
if (r < 0) {
log_syntax(unit, LOG_WARNING, filename, line, r, "Invalid address '%s', ignoring assignment: %m", rvalue);
diff --git a/src/network/test-networkd-conf.c b/src/network/test-networkd-conf.c
index 2e4ca0cb5f..f6f068706a 100644
--- a/src/network/test-networkd-conf.c
+++ b/src/network/test-networkd-conf.c
@@ -197,7 +197,7 @@ TEST(config_parse_address) {
test_config_parse_address_one("", AF_INET, 0, NULL, 0);
test_config_parse_address_one("/", AF_INET, 0, NULL, 0);
test_config_parse_address_one("/8", AF_INET, 0, NULL, 0);
- test_config_parse_address_one("1.2.3.4", AF_INET, 1, &(union in_addr_union) { .in = (struct in_addr) { .s_addr = htobe32(0x01020304) } }, 8);
+ test_config_parse_address_one("1.2.3.4", AF_INET, 1, &(union in_addr_union) { .in = (struct in_addr) { .s_addr = htobe32(0x01020304) } }, 32);
test_config_parse_address_one("1.2.3.4/0", AF_INET, 1, &(union in_addr_union) { .in = (struct in_addr) { .s_addr = htobe32(0x01020304) } }, 0);
test_config_parse_address_one("1.2.3.4/1", AF_INET, 1, &(union in_addr_union) { .in = (struct in_addr) { .s_addr = htobe32(0x01020304) } }, 1);
test_config_parse_address_one("1.2.3.4/2", AF_INET, 1, &(union in_addr_union) { .in = (struct in_addr) { .s_addr = htobe32(0x01020304) } }, 2);
@@ -208,7 +208,7 @@ TEST(config_parse_address) {
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 }, 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/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);