From 0f707207b9fc04d45ad176930cfefc77c0068545 Mon Sep 17 00:00:00 2001 From: Yu Watanabe Date: Mon, 28 Jan 2019 15:29:54 +0100 Subject: [PATCH] network: warn if Address= is specified without prefixlen This is the first step for #11307. --- src/network/networkd-address.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 25d9cbe497..fa7f9b8d74 100644 --- a/src/network/networkd-address.c +++ b/src/network/networkd-address.c @@ -748,7 +748,15 @@ int config_parse_address(const char *unit, return r; /* Address=address/prefixlen */ - r = in_addr_prefix_from_string_auto_internal(rvalue, PREFIXLEN_LEGACY, &f, &buffer, &prefixlen); + r = in_addr_prefix_from_string_auto_internal(rvalue, PREFIXLEN_REFUSE, &f, &buffer, &prefixlen); + if (r == -ENOANO) { + log_syntax(unit, LOG_ERR, 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); + } if (r < 0) { log_syntax(unit, LOG_ERR, filename, line, r, "Invalid address '%s', ignoring assignment: %m", rvalue); return 0;