resolved: do not start LLMNR or mDNS stack when no network enables them

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.
This commit is contained in:
Yu Watanabe 2017-03-16 15:52:34 +09:00
parent 03bf096ba2
commit c6a8f6f66d
2 changed files with 17 additions and 8 deletions

View 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);

View 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;
}