Newer
Older
#ifndef DNS_CACHE_H
#define DNS_CACHE_H
#include "dns.h"
typedef struct dns_cache {
size_t ip_addr_cnt;
size_t ipv6_addr_cnt;
size_t cname_cnt;
int match_cnt;
char **ip_addr;
char **ipv6_addr;
char **cname;
char url[1024];
} dns_cache;
extern dns_cache *global_dns_cache;
extern size_t dns_cache_cnt;
char *match_ip_address_from_dns_cache(char *ip_address, bool is_ipv6);
char *match_cname_from_dns_cache(char *c_name);
void store_qname_ipaddr_in_cache(struct DNS_HEADER *dns,
struct RES_RECORD answers[MAX_DNS_ANS_RECORD], size_t ipv4_addr_cnt,
char url_cname[][MAX_URL_LENGTH], size_t cname_cnt, size_t ipv6_addr_cnt);