chiark / gitweb /
resolved: don't resolve the hostname "gateway" with LLMNR, leave that to nss-myhostname
[elogind.git] / src / resolve / resolved-dns-scope.c
index a3631f08a80248baffd1a691d99e9141cbbbd294..a43359f8c59c0d28939135565c5dddb79df7e2cb 100644 (file)
@@ -334,7 +334,8 @@ DnsScopeMatch dns_scope_good_domain(DnsScope *s, int ifindex, uint64_t flags, co
         if (s->protocol == DNS_PROTOCOL_LLMNR) {
                 if (dns_name_endswith(domain, "in-addr.arpa") > 0 ||
                     dns_name_endswith(domain, "ip6.arpa") > 0 ||
-                    dns_name_single_label(domain) > 0)
+                    (dns_name_single_label(domain) > 0 &&
+                     dns_name_equal(domain, "gateway") <= 0))  /* don't resolve "gateway" with LLMNR, let nss-myhostname handle this */
                         return DNS_SCOPE_MAYBE;
 
                 return DNS_SCOPE_NO;
@@ -721,10 +722,8 @@ int dns_scope_notify_conflict(DnsScope *scope, DnsResourceRecord *rr) {
         r = ordered_hashmap_put(scope->conflict_queue, rr->key, rr);
         if (r == -EEXIST || r == 0)
                 return 0;
-        if (r < 0) {
-                log_debug_errno(r, "Failed to queue conflicting RR: %m");
-                return r;
-        }
+        if (r < 0)
+                return log_debug_errno(r, "Failed to queue conflicting RR: %m");
 
         dns_resource_record_ref(rr);
 
@@ -740,10 +739,8 @@ int dns_scope_notify_conflict(DnsScope *scope, DnsResourceRecord *rr) {
                               now(clock_boottime_or_monotonic()) + jitter,
                               LLMNR_JITTER_INTERVAL_USEC,
                               on_conflict_dispatch, scope);
-        if (r < 0) {
-                log_debug_errno(r, "Failed to add conflict dispatch event: %m");
-                return r;
-        }
+        if (r < 0)
+                return log_debug_errno(r, "Failed to add conflict dispatch event: %m");
 
         return 0;
 }