Skip to content
Snippets Groups Projects
dns_cache.h 649 B
Newer Older
  • Learn to ignore specific revisions
  • #ifndef DNS_CACHE_H
    #define DNS_CACHE_H
    
    Rahul Thakur's avatar
    Rahul Thakur committed
    
    #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];
    
    Rahul Thakur's avatar
    Rahul Thakur committed
    } 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);
    
    Rahul Thakur's avatar
    Rahul Thakur committed
    #endif