]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: stop mdns/llmnr if no interface request it after bus method 36158/head
authorYu Watanabe <watanabe.yu+github@gmail.com>
Fri, 24 Jan 2025 19:48:00 +0000 (04:48 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Sat, 25 Jan 2025 01:07:38 +0000 (10:07 +0900)
src/resolve/resolved-link-bus.c

index 5e9e5bf17a762cc1a6cb6f6efff65997f64c03be..1c26dcbc661d66b57b2e76adca46247d6ce5860f 100644 (file)
@@ -14,6 +14,8 @@
 #include "resolve-util.h"
 #include "resolved-bus.h"
 #include "resolved-link-bus.h"
+#include "resolved-llmnr.h"
+#include "resolved-mdns.h"
 #include "resolved-resolv-conf.h"
 #include "socket-netlink.h"
 #include "stdio-util.h"
@@ -517,6 +519,8 @@ int bus_link_method_set_llmnr(sd_bus_message *message, void *userdata, sd_bus_er
 
                 (void) link_save_user(l);
 
+                manager_llmnr_maybe_stop(l->manager);
+
                 log_link_info(l, "Bus client set LLMNR setting: %s", resolve_support_to_string(mode));
         }
 
@@ -567,6 +571,8 @@ int bus_link_method_set_mdns(sd_bus_message *message, void *userdata, sd_bus_err
 
                 (void) link_save_user(l);
 
+                manager_mdns_maybe_stop(l->manager);
+
                 log_link_info(l, "Bus client set MulticastDNS setting: %s", resolve_support_to_string(mode));
         }
 
@@ -769,6 +775,9 @@ int bus_link_method_revert(sd_bus_message *message, void *userdata, sd_bus_error
         (void) manager_write_resolv_conf(l->manager);
         (void) manager_send_changed(l->manager, "DNS");
 
+        manager_llmnr_maybe_stop(l->manager);
+        manager_mdns_maybe_stop(l->manager);
+
         return sd_bus_reply_method_return(message, NULL);
 }