Compare address and interface index for allowed interface

If interface is recreated with the same address but different index, it
would not change any other parameter.

Test also address family on incoming TCP queries.
This commit is contained in:
Petr Mensik authored and Simon Kelley committed 2020-04-29 00:04:29 +01:00
1 parent 51cdd1a227
commit 951a22165c
2 files changed
+4 -2

No files matched your search

+2 -1
View File
@@ -1824,7 +1824,8 @@ static void check_dns_listeners(time_t now)
addr.addr4 = tcp_addr.in.sin_addr;
for (iface = daemon->interfaces; iface; iface = iface->next)
if (iface->index == if_index)
if (iface->index == if_index &&
iface->addr.sa.sa_family == tcp_addr.sa.sa_family)
break;
if (!iface && !loopback_exception(listener->tcpfd, tcp_addr.sa.sa_family, &addr, intr_name))