return -EMSGSIZE;
ifindex = s->link->ifindex;
+ } else {
+ uint32_t mtu;
+
+ mtu = manager_find_mtu(s->manager);
+ if (mtu > 0) {
+ if (p->size > mtu)
+ return -EMSGSIZE;
+ }
}
+ if (p->size > DNS_PACKET_UNICAST_SIZE_MAX)
+ return -EMSGSIZE;
+
if (srv->family == AF_INET)
r = manager_dns_ipv4_send(s->manager, srv, ifindex, p);
else if (srv->family == AF_INET6)
if (dns_name_root(domain))
return DNS_SCOPE_NO;
+ if (is_localhost(domain))
+ return DNS_SCOPE_NO;
+
if (s->type == DNS_SCOPE_MDNS) {
if (dns_name_endswith(domain, "254.169.in-addr.arpa") ||
dns_name_endswith(domain, "0.8.e.f.ip6.arpa"))
return DNS_SCOPE_YES;
- else if (dns_name_endswith(domain, "local") ||
+ else if (dns_name_endswith(domain, "local") &&
!dns_name_single_label(domain))
return DNS_SCOPE_MAYBE;