From cf31d92de3c4e76e659917d7c8f12b943b514ec7 Mon Sep 17 00:00:00 2001 From: Nick Rosbrook Date: Fri, 21 Aug 2026 16:18:28 -0400 Subject: [PATCH] resolvectl: implement log-level with varlink methods --- src/resolve/resolvectl.c | 25 ++++++++++++++++++++----- test/units/TEST-75-RESOLVED.sh | 5 +++++ 2 files changed, 25 insertions(+), 5 deletions(-) diff --git a/src/resolve/resolvectl.c b/src/resolve/resolvectl.c index 4afd9958c8..9e97a90cf5 100644 --- a/src/resolve/resolvectl.c +++ b/src/resolve/resolvectl.c @@ -3171,16 +3171,31 @@ static int verb_revert_link(int argc, char *argv[], uintptr_t _data, void *userd VERB(verb_log_level, "log-level", "[LEVEL]", VERB_ANY, 2, 0, "Get/set logging threshold for systemd-resolved"); static int verb_log_level(int argc, char *argv[], uintptr_t _data, void *userdata) { - _cleanup_(sd_bus_flush_close_unrefp) sd_bus *bus = NULL; int r; - r = acquire_bus(&bus); + _cleanup_(sd_varlink_unrefp) sd_varlink *vl = NULL; + r = sd_varlink_connect_address(&vl, "/run/systemd/resolve/io.systemd.Resolve"); if (r < 0) - return r; + return log_error_errno(r, "Failed to connect to /run/systemd/resolve/io.systemd.Resolve: %m"); - assert(IN_SET(argc, 1, 2)); + if (argc == 1) { + /* Show current log level */ + _cleanup_free_ char *level_str = NULL; + r = varlink_get_log_level_string(vl, &level_str); + if (r < 0) + return r; - return verb_log_control_common(bus, "org.freedesktop.resolve1", argv[0], argc == 2 ? argv[1] : NULL); + puts(level_str); + + } else if (argc == 2) { + /* Set new log level */ + r = varlink_set_log_level_string(vl, argv[1]); + if (r < 0) + return r; + } else + assert_not_reached(); + + return 0; } static int parse_protocol(const char *arg) { diff --git a/test/units/TEST-75-RESOLVED.sh b/test/units/TEST-75-RESOLVED.sh index 172dff245d..899c5a6b81 100755 --- a/test/units/TEST-75-RESOLVED.sh +++ b/test/units/TEST-75-RESOLVED.sh @@ -336,6 +336,11 @@ manual_testcase_01_resolvectl() { assert_in '_localdnsstub' "$(dig @127.0.0.53 -x 127.0.0.53)" assert_in '127.0.0.54' "$(dig @127.0.0.53 _localdnsproxy)" assert_in '_localdnsproxy' "$(dig @127.0.0.53 -x 127.0.0.54)" + + resolvectl log-level warning + assert_eq "$(resolvectl log-level)" "warning" + resolvectl log-level debug + assert_eq "$(resolvectl log-level)" "debug" } # Tests for mDNS and LLMNR settings