Accept dns proposals for the loopback addresses
authorkn <kn@openbsd.org>
Mon, 30 Aug 2021 19:14:30 +0000 (19:14 +0000)
committerkn <kn@openbsd.org>
Mon, 30 Aug 2021 19:14:30 +0000 (19:14 +0000)
Don't reserve^Wignore them for unwind(8);  there are non-unwind use-cases
and so far resolvd(8) always seems to do the right thing when proposing
localhost while unwind is running.

OK benno

sbin/resolvd/resolvd.c

index d97cf97..de3b3bf 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: resolvd.c,v 1.17 2021/08/30 11:04:50 kn Exp $ */
+/*     $OpenBSD: resolvd.c,v 1.18 2021/08/30 19:14:30 kn Exp $ */
 /*
  * Copyright (c) 2021 Florian Obser <florian@openbsd.org>
  * Copyright (c) 2021 Theo de Raadt <deraadt@openbsd.org>
@@ -476,8 +476,6 @@ handle_route_message(struct rt_msghdr *rtm, struct sockaddr **rti_info)
                        case AF_INET:
                                memcpy(&addr4, src, sizeof(struct in_addr));
                                src += sizeof(struct in_addr);
-                               if (addr4.s_addr == htonl(INADDR_LOOPBACK))
-                                       continue;
                                new = findslot(learning);
                                if (inet_ntop(af, &addr4, learning[new].ip,
                                    INET6_ADDRSTRLEN) != NULL) {
@@ -490,8 +488,6 @@ handle_route_message(struct rt_msghdr *rtm, struct sockaddr **rti_info)
                        case AF_INET6:
                                memcpy(&addr6, src, sizeof(struct in6_addr));
                                src += sizeof(struct in6_addr);
-                               if (IN6_IS_ADDR_LOOPBACK(&addr6))
-                                       continue;
                                new = findslot(learning);
                                if (inet_ntop(af, &addr6, learning[new].ip,
                                    INET6_ADDRSTRLEN) != NULL) {