void BPFFilter::unblock(const DNSName& qname, uint16_t qtype)
{
- QNameAndQTypeKey key;
+ QNameAndQTypeKey key{};
memset(&key, 0, sizeof(key));
std::string keyStr = qname.toDNSStringLC();
{
auto& map = maps->d_v4;
- int res = bpf_get_next_key(map.d_fd.getHandle(), &v4Key, &nextV4Key);
+ int res = bpf_get_next_key(map.d_fd.getHandle(), nullptr, &nextV4Key);
while (res == 0) {
v4Key = nextV4Key;
{
auto& map = maps->d_v6;
- int res = bpf_get_next_key(map.d_fd.getHandle(), v6Key.data(), nextV6Key.data());
+ int res = bpf_get_next_key(map.d_fd.getHandle(), nullptr, nextV6Key.data());
while (res == 0) {
if (bpf_lookup_elem(map.d_fd.getHandle(), nextV6Key.data(), &value) == 0) {
std::vector<std::pair<Netmask, CounterAndActionValue>> BPFFilter::getRangeRule()
{
- CIDR4 cidr4[2];
- CIDR6 cidr6[2];
+ CIDR4 cidr4{};
+ CIDR6 cidr6{};
std::vector<std::pair<Netmask, CounterAndActionValue>> result;
- sockaddr_in v4Addr;
- sockaddr_in6 v6Addr;
+ sockaddr_in v4Addr{};
+ sockaddr_in6 v6Addr{};
CounterAndActionValue value;
- memset(cidr4, 0, sizeof(cidr4));
- memset(cidr6, 0, sizeof(cidr6));
+ memset(&cidr4, 0, sizeof(cidr4));
+ memset(&cidr6, 0, sizeof(cidr6));
memset(&v4Addr, 0, sizeof(v4Addr));
memset(&v6Addr, 0, sizeof(v6Addr));
v4Addr.sin_family = AF_INET;
result.reserve(maps->d_cidr4.d_count + maps->d_cidr6.d_count);
{
auto& map = maps->d_cidr4;
- int res = bpf_get_next_key(map.d_fd.getHandle(), &cidr4[0], &cidr4[1]);
+ int res = bpf_get_next_key(map.d_fd.getHandle(), nullptr, &cidr4);
while (res == 0) {
- if (bpf_lookup_elem(map.d_fd.getHandle(), &cidr4[1], &value) == 0) {
- v4Addr.sin_addr.s_addr = cidr4[1].addr.s_addr;
- result.emplace_back(Netmask(&v4Addr, cidr4[1].cidr), value);
+ if (bpf_lookup_elem(map.d_fd.getHandle(), &cidr4, &value) == 0) {
+ v4Addr.sin_addr.s_addr = cidr4.addr.s_addr;
+ result.emplace_back(Netmask(&v4Addr, cidr4.cidr), value);
}
- res = bpf_get_next_key(map.d_fd.getHandle(), &cidr4[1], &cidr4[1]);
+ res = bpf_get_next_key(map.d_fd.getHandle(), &cidr4, &cidr4);
}
}
{
auto& map = maps->d_cidr6;
- int res = bpf_get_next_key(map.d_fd.getHandle(), &cidr6[0], &cidr6[1]);
+ int res = bpf_get_next_key(map.d_fd.getHandle(), nullptr, &cidr6);
while (res == 0) {
- if (bpf_lookup_elem(map.d_fd.getHandle(), &cidr6[1], &value) == 0) {
- v6Addr.sin6_addr = cidr6[1].addr;
- result.emplace_back(Netmask(&v6Addr, cidr6[1].cidr), value);
+ if (bpf_lookup_elem(map.d_fd.getHandle(), &cidr6, &value) == 0) {
+ v6Addr.sin6_addr = cidr6.addr;
+ result.emplace_back(Netmask(&v6Addr, cidr6.cidr), value);
}
- res = bpf_get_next_key(map.d_fd.getHandle(), &cidr6[1], &cidr6[1]);
+ res = bpf_get_next_key(map.d_fd.getHandle(), &cidr6, &cidr6);
}
}
return result;
std::vector<std::tuple<DNSName, uint16_t, uint64_t>> result;
if (d_mapFormat == MapFormat::Legacy) {
- QNameKey key = {{0}};
QNameKey nextKey = {{0}};
QNameValue value;
auto maps = d_maps.lock();
auto& map = maps->d_qnames;
result.reserve(map.d_count);
- int res = bpf_get_next_key(map.d_fd.getHandle(), &key, &nextKey);
+ int res = bpf_get_next_key(map.d_fd.getHandle(), nullptr, &nextKey);
while (res == 0) {
if (bpf_lookup_elem(map.d_fd.getHandle(), &nextKey, &value) == 0) {
nextKey.qname[sizeof(nextKey.qname) - 1] = '\0';
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
result.emplace_back(DNSName(reinterpret_cast<const char*>(nextKey.qname), sizeof(nextKey.qname), 0, false), value.qtype, value.counter);
}
}
}
else {
- QNameAndQTypeKey key;
- QNameAndQTypeKey nextKey;
- memset(&key, 0, sizeof(key));
+ QNameAndQTypeKey nextKey{};
memset(&nextKey, 0, sizeof(nextKey));
CounterAndActionValue value;
auto maps = d_maps.lock();
auto& map = maps->d_qnames;
result.reserve(map.d_count);
- int res = bpf_get_next_key(map.d_fd.getHandle(), &key, &nextKey);
+ int res = bpf_get_next_key(map.d_fd.getHandle(), nullptr, &nextKey);
while (res == 0) {
if (bpf_lookup_elem(map.d_fd.getHandle(), &nextKey, &value) == 0) {
nextKey.qname[sizeof(nextKey.qname) - 1] = '\0';
- result.emplace_back(DNSName(reinterpret_cast<const char*>(nextKey.qname), sizeof(nextKey.qname), 0, false), key.qtype, value.counter);
+ // NOLINTNEXTLINE(cppcoreguidelines-pro-type-reinterpret-cast)
+ result.emplace_back(DNSName(reinterpret_cast<const char*>(nextKey.qname), sizeof(nextKey.qname), 0, false), nextKey.qtype, value.counter);
}
res = bpf_get_next_key(map.d_fd.getHandle(), &nextKey, &nextKey);