resolved: transaction - don't request PKTINFO for unicast DNS

This was only ever used by LLMNR, so don't request this for unicast DNS packets.
This commit is contained in:
Tom Gundersen
2015-07-27 19:56:45 +02:00
parent 0eb99d0a6a
commit 86ad4cd709
2 changed files with 6 additions and 20 deletions
-16
View File
@@ -654,7 +654,6 @@ static int on_dns_packet(sd_event_source *s, int fd, uint32_t revents, void *use
}
int transaction_dns_fd(DnsTransaction *t) {
const int one = 1;
int r;
assert(t);
@@ -668,21 +667,6 @@ int transaction_dns_fd(DnsTransaction *t) {
if (t->dns_fd < 0)
return -errno;
switch (t->scope->family) {
case AF_INET:
r = setsockopt(t->dns_fd, IPPROTO_IP, IP_PKTINFO, &one, sizeof(one));
break;
case AF_INET6:
r = setsockopt(t->dns_fd, IPPROTO_IPV6, IPV6_RECVPKTINFO, &one, sizeof(one));
break;
default:
return -EAFNOSUPPORT;
}
if (r < 0) {
r = -errno;
goto fail;
}
r = sd_event_add_io(t->scope->manager->event, &t->dns_event_source, t->dns_fd, EPOLLIN, on_dns_packet, t);
if (r < 0)
goto fail;
+6 -4
View File
@@ -912,10 +912,12 @@ int manager_recv(Manager *m, int fd, DnsProtocol protocol, DnsPacket **ret) {
if (p->ifindex == LOOPBACK_IFINDEX)
p->ifindex = 0;
/* If we don't know the interface index still, we look for the
* first local interface with a matching address. Yuck! */
if (p->ifindex <= 0)
p->ifindex = manager_find_ifindex(m, p->family, &p->destination);
if (protocol != DNS_PROTOCOL_DNS) {
/* If we don't know the interface index still, we look for the
* first local interface with a matching address. Yuck! */
if (p->ifindex <= 0)
p->ifindex = manager_find_ifindex(m, p->family, &p->destination);
}
*ret = p;
p = NULL;