]> git.ipfire.org Git - thirdparty/systemd.git/commitdiff
resolved: do not start LLMNR or mDNS stack when no network enables them
authorYu Watanabe <watanabe.yu+github@gmail.com>
Thu, 16 Mar 2017 06:52:34 +0000 (15:52 +0900)
committerYu Watanabe <watanabe.yu+github@gmail.com>
Tue, 21 Mar 2017 04:14:04 +0000 (13:14 +0900)
When no network enables LLMNR or mDNS, it is not necessary to create
LLMNR or mDNS related sockets. So, let's create them only when
LLMNR- or mDNS-enabled network becomes active or at least one network
enables `LLMNR=` or `MulticastDNS=` options.

src/resolve/resolved-link.c
src/resolve/resolved-manager.c

index 3f7f9035cfdcd55af8613cb37bd6b587e628bad2..d06096f3f238027d334f4a2e692f89ab43408dac 100644 (file)
@@ -28,6 +28,8 @@
 #include "mkdir.h"
 #include "parse-util.h"
 #include "resolved-link.h"
+#include "resolved-llmnr.h"
+#include "resolved-mdns.h"
 #include "string-util.h"
 #include "strv.h"
 
@@ -523,10 +525,25 @@ static void link_read_settings(Link *l) {
 }
 
 int link_update(Link *l) {
+        int r;
+
         assert(l);
 
         link_read_settings(l);
         link_load_user(l);
+
+        if (l->llmnr_support != RESOLVE_SUPPORT_NO) {
+                r = manager_llmnr_start(l->manager);
+                if (r < 0)
+                        return r;
+        }
+
+        if (l->mdns_support != RESOLVE_SUPPORT_NO) {
+                r = manager_mdns_start(l->manager);
+                if (r < 0)
+                        return r;
+        }
+
         link_allocate_scopes(l);
         link_add_rrs(l, false);
 
index c4e4409fe38e5e43a76369ad626fc9ef36e7d7f1..9db8b8f61613bd5f2ac366ed30d6dbf0763c913f 100644 (file)
@@ -612,14 +612,6 @@ int manager_start(Manager *m) {
         if (r < 0)
                 return r;
 
-        r = manager_llmnr_start(m);
-        if (r < 0)
-                return r;
-
-        r = manager_mdns_start(m);
-        if (r < 0)
-                return r;
-
         return 0;
 }