rpcd-mod-luci: avoid PTR requests for IPv6 link-local and ULA addrs

Signed-off-by: Jo-Philipp Wich <jo@mein.io>
(cherry picked from commit 45a398e1ed)
This commit is contained in:
Jo-Philipp Wich 2021-09-22 09:55:07 +02:00
parent a9b4f93612
commit ba3f8f84ad

View file

@ -52,6 +52,10 @@
#include <rpcd/plugin.h>
#ifndef IN6_IS_ADDR_ULA
#define IN6_IS_ADDR_ULA(a) (((a)->s6_addr[0] & 0xfe) == 0xfc)
#endif
static struct blob_buf blob;
@ -1720,7 +1724,9 @@ rpc_luci_get_host_hints_rrdns(struct reply_context *rctx)
}
}
avl_for_each_element(&hint->ip6addrs, addr, avl) {
if (!IN6_IS_ADDR_UNSPECIFIED(&addr->addr.in6)) {
if (!IN6_IS_ADDR_UNSPECIFIED(&addr->addr.in6) &&
!IN6_IS_ADDR_LINKLOCAL(&addr->addr.in6) &&
!IN6_IS_ADDR_ULA(&addr>addr.in6)) {
inet_ntop(AF_INET6, &addr->addr.in6, buf, sizeof(buf));
blobmsg_add_string(&req, NULL, buf);
n++;