From: Remi Gacogne Date: Tue, 5 Jan 2021 08:44:39 +0000 (+0100) Subject: dnsdist: Remove unused fields when eBPF is not available X-Git-Tag: rec-4.5.0-alpha1~39^2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=refs%2Fpull%2F9782%2Fhead;p=thirdparty%2Fpdns.git dnsdist: Remove unused fields when eBPF is not available --- diff --git a/pdns/bpf-filter.cc b/pdns/bpf-filter.cc index 7e833f42fa..7f24588c46 100644 --- a/pdns/bpf-filter.cc +++ b/pdns/bpf-filter.cc @@ -372,9 +372,7 @@ std::vector > BPFFilter::getAddrStats() v6Addr.sin6_family = AF_INET6; static_assert(sizeof(v6Addr.sin6_addr.s6_addr) == sizeof(v6Key), "POSIX mandates s6_addr to be an array of 16 uint8_t"); - for (size_t idx = 0; idx < sizeof(v6Key); idx++) { - v6Key[idx] = 0; - } + memset(&v6Key, 0, sizeof(v6Key)); std::lock_guard lock(d_mutex); int res = bpf_get_next_key(d_v4map.fd, &v4Key, &nextV4Key); @@ -393,9 +391,8 @@ std::vector > BPFFilter::getAddrStats() while (res == 0) { if (bpf_lookup_elem(d_v6map.fd, &nextV6Key, &value) == 0) { - for (size_t idx = 0; idx < sizeof(nextV6Key); idx++) { - v6Addr.sin6_addr.s6_addr[idx] = nextV6Key[idx]; - } + memcpy(&v6Addr.sin6_addr.s6_addr, &nextV6Key, sizeof(nextV6Key)); + result.push_back(make_pair(ComboAddress(&v6Addr), value)); } @@ -459,8 +456,11 @@ uint64_t BPFFilter::getHits(const ComboAddress& requestor) #else -BPFFilter::BPFFilter(uint32_t maxV4Addresses, uint32_t maxV6Addresses, uint32_t maxQNames): d_maxV4(maxV4Addresses), d_maxV6(maxV6Addresses), d_maxQNames(maxQNames) +BPFFilter::BPFFilter(uint32_t maxV4Addresses, uint32_t maxV6Addresses, uint32_t maxQNames) { + (void) maxV4Addresses; + (void) maxV6Addresses; + (void) maxQNames; } void BPFFilter::addSocket(int sock) diff --git a/pdns/bpf-filter.hh b/pdns/bpf-filter.hh index e14a517dcc..1bd543e626 100644 --- a/pdns/bpf-filter.hh +++ b/pdns/bpf-filter.hh @@ -41,6 +41,7 @@ public: uint64_t getHits(const ComboAddress& requestor); private: +#ifdef HAVE_EBPF struct FDWrapper { ~FDWrapper() @@ -64,4 +65,5 @@ private: FDWrapper d_filtermap; FDWrapper d_mainfilter; FDWrapper d_qnamefilter; +#endif /* HAVE_EBPF */ };