From: Yu Watanabe Date: Mon, 28 Jan 2019 14:29:54 +0000 (+0100) Subject: network: warn if Address= is specified without prefixlen X-Git-Tag: v241-rc2~6^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=0f707207b9fc04d45ad176930cfefc77c0068545;p=thirdparty%2Fsystemd.git network: warn if Address= is specified without prefixlen This is the first step for #11307. --- diff --git a/src/network/networkd-address.c b/src/network/networkd-address.c index 25d9cbe4971..fa7f9b8d74a 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;