X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fresolve%2Fresolved-link.c;h=cd6e4ba8e6f695e31095c19edfd4100f2fca8b61;hb=34b9656f0b2890743eee6a746ef08d817abfd5e9;hp=6ac7c5be98e4ce92455c527119f50d5f4198d10c;hpb=623a4c97b9175f95c4b1c6fc34e36c56f1e4ddbf;p=elogind.git diff --git a/src/resolve/resolved-link.c b/src/resolve/resolved-link.c index 6ac7c5be9..cd6e4ba8e 100644 --- a/src/resolve/resolved-link.c +++ b/src/resolve/resolved-link.c @@ -25,7 +25,8 @@ #include "strv.h" #include "resolved-link.h" -#define DEFAULT_TTL (10) +/* RFC 4795 Section 2.8. suggests a TTL of 30s by default */ +#define LLMNR_DEFAULT_TTL (30) static void link_address_add_rrs(LinkAddress *a); @@ -95,7 +96,7 @@ static void link_allocate_scopes(Link *l) { } else l->unicast_scope = dns_scope_free(l->unicast_scope); - if (link_relevant(l, AF_INET) && l->manager->use_llmnr) { + if (link_relevant(l, AF_INET) && (l->flags & IFF_MULTICAST) && l->manager->use_llmnr) { if (!l->llmnr_ipv4_scope) { r = dns_scope_new(l->manager, &l->llmnr_ipv4_scope, l, DNS_PROTOCOL_LLMNR, AF_INET); if (r < 0) @@ -104,7 +105,7 @@ static void link_allocate_scopes(Link *l) { } else l->llmnr_ipv4_scope = dns_scope_free(l->llmnr_ipv4_scope); - if (link_relevant(l, AF_INET6) && l->manager->use_llmnr) { + if (link_relevant(l, AF_INET6) && (l->flags & IFF_MULTICAST) && l->manager->use_llmnr) { if (!l->llmnr_ipv6_scope) { r = dns_scope_new(l->manager, &l->llmnr_ipv6_scope, l, DNS_PROTOCOL_LLMNR, AF_INET6); if (r < 0) @@ -354,7 +355,7 @@ static void link_address_add_rrs(LinkAddress *a) { } a->llmnr_address_rr->a.in_addr = a->in_addr.in; - a->llmnr_address_rr->ttl = DEFAULT_TTL; + a->llmnr_address_rr->ttl = LLMNR_DEFAULT_TTL; } if (!a->llmnr_ptr_rr) { @@ -362,7 +363,7 @@ static void link_address_add_rrs(LinkAddress *a) { if (r < 0) goto fail; - a->llmnr_ptr_rr->ttl = DEFAULT_TTL; + a->llmnr_ptr_rr->ttl = LLMNR_DEFAULT_TTL; } if (link_address_relevant(a)) { @@ -397,7 +398,7 @@ static void link_address_add_rrs(LinkAddress *a) { } a->llmnr_address_rr->aaaa.in6_addr = a->in_addr.in6; - a->llmnr_address_rr->ttl = DEFAULT_TTL; + a->llmnr_address_rr->ttl = LLMNR_DEFAULT_TTL; } if (!a->llmnr_ptr_rr) { @@ -405,7 +406,7 @@ static void link_address_add_rrs(LinkAddress *a) { if (r < 0) goto fail; - a->llmnr_ptr_rr->ttl = DEFAULT_TTL; + a->llmnr_ptr_rr->ttl = LLMNR_DEFAULT_TTL; } if (link_address_relevant(a)) {