From bee07a399572e0d60600c040a84099ecb418ed33 Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 29 Sep 2021 10:48:24 +0200 Subject: [PATCH] resolvconf-compat: make "-u" operation a NOP According to the various man pages of "resolvconf" the -u switch is for: "-u Just run the update scripts (if updating is enabled)." "-u Force resolvconf to update all its subscribers. resolvconf does not update the subscribers when adding a resolv.conf that matches what it already has for that interface." We have no "subscribers", we ourselves are the only "subscriber" we support. Hence it's probably better to ignore such a request and make it a NOP, then to fail. Fixes: #20748 --- src/resolve/resolvconf-compat.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/resolve/resolvconf-compat.c b/src/resolve/resolvconf-compat.c index 4fdf445c98c..bf73830e943 100644 --- a/src/resolve/resolvconf-compat.c +++ b/src/resolve/resolvconf-compat.c @@ -39,8 +39,8 @@ static int resolvconf_help(void) { "This is a compatibility alias for the resolvectl(1) tool, providing native\n" "command line compatibility with the resolvconf(8) tool of various Linux\n" "distributions and BSD systems. Some options supported by other implementations\n" - "are not supported and are ignored: -m, -p. Various options supported by other\n" - "implementations are not supported and will cause the invocation to fail: -u,\n" + "are not supported and are ignored: -m, -p, -u. Various options supported by other\n" + "implementations are not supported and will cause the invocation to fail:\n" "-I, -i, -l, -R, -r, -v, -V, --enable-updates, --disable-updates,\n" "--updates-are-enabled.\n" "\nSee the %2$s for details.\n", @@ -171,8 +171,11 @@ int resolvconf_parse_argv(int argc, char *argv[]) { log_debug("Switch -%c ignored.", c); break; - /* Everybody else can agree on the existence of -u but we don't support it. */ + /* -u supposedly should "update all subscribers". We have no subscribers, hence let's make + this a NOP, and exit immediately, cleanly. */ case 'u': + log_info("Switch -%c ignored.", c); + return 0; /* The following options are openresolv inventions we don't support. */ case 'I':