windows-filter-windivert/include/common.h

49 lines
1.1 KiB
C++

#ifndef COMMON_H
#define COMMON_H
#include <string>
#include <atomic>
#include <cstdint>
// DNS protocol constants
#define DNS_PORT 53
#define DNS_MAX_DOMAIN_LENGTH 253
#define DNS_HEADER_SIZE 12
#define DNS_TYPE_A 1
#define DNS_TYPE_AAAA 28
#define DNS_CLASS_IN 1
#define DNS_MAX_RECURSION_DEPTH 16
// Application constants
#define MAX_PACKET_SIZE 65535
#define LOG_BUFFER_SIZE 1024
#define CONFIG_CHECK_INTERVAL_MS 1000
// Filter action types
enum FilterAction {
ACTION_ALLOW,
ACTION_BLOCK
};
// Domain rule structure
struct DomainRule {
std::string domain;
FilterAction action;
bool is_wildcard;
std::string comment;
DomainRule() : action(ACTION_ALLOW), is_wildcard(false) {}
DomainRule(const std::string& d, FilterAction a, bool w = false, const std::string& c = "")
: domain(d), action(a), is_wildcard(w), comment(c) {}
};
// Packet statistics
struct PacketStats {
std::atomic<uint64_t> total_packets{0};
std::atomic<uint64_t> blocked_packets{0};
std::atomic<uint64_t> allowed_packets{0};
std::atomic<uint64_t> parse_errors{0};
};
#endif // COMMON_H