Add Bogus ip filter

This commit is contained in:
Nick Peng
2018-08-17 00:02:19 +08:00
parent d513275738
commit 55e24625c7
9 changed files with 182 additions and 14 deletions

View File

@@ -5,6 +5,8 @@
#include "art.h"
#include "dns.h"
#include "dns_client.h"
#include "hash.h"
#include "hashtable.h"
#define DNS_MAX_SERVERS 32
#define DNS_MAX_IPLEN 64
@@ -27,11 +29,28 @@ struct dns_address {
};
};
/* ip address lists of domain */
struct dns_bogus_ip_address {
struct hlist_node node;
dns_type_t addr_type;
union {
unsigned char ipv4_addr[DNS_RR_A_LEN];
unsigned char ipv6_addr[DNS_RR_AAAA_LEN];
unsigned char addr[0];
};
};
struct dns_bogus_nxdomain {
DECLARE_HASHTABLE(ip_hash, 12);
};
extern char dns_conf_server_ip[DNS_MAX_IPLEN];
extern int dns_conf_cachesize;
extern struct dns_servers dns_conf_servers[DNS_MAX_SERVERS];
extern int dns_conf_server_num;
extern struct dns_bogus_nxdomain dns_conf_bogus_nxdomain;
extern int dns_conf_log_level;
extern char dns_conf_log_file[DNS_MAX_PATH];
extern int dns_conf_log_size;
@@ -44,6 +63,7 @@ extern int dns_conf_rr_ttl;
extern int dns_conf_rr_ttl_min;
extern int dns_conf_rr_ttl_max;
int dns_bogus_nxdomain_exists(unsigned char *ip, dns_type_t addr_type);
int load_conf(const char *file);