summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2021-09-29 10:48:24 +0200
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>2021-10-12 17:11:17 +0200
commit4fe53426991e829c0add9378d91f3677a23076fd (patch)
treefb92430d9fa61fd6b172688466c4676b1e0cb24a
parent879c3eed4293752210ce067206a2fadb862c6370 (diff)
downloadsystemd-4fe53426991e829c0add9378d91f3677a23076fd.tar.gz
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 (cherry picked from commit bee07a399572e0d60600c040a84099ecb418ed33)
-rw-r--r--src/resolve/resolvconf-compat.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/src/resolve/resolvconf-compat.c b/src/resolve/resolvconf-compat.c
index 93ded6d564..991c62e21d 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':