X-Git-Url: http://git.archive.openwrt.org/?p=project%2Fmdnsd.git;a=blobdiff_plain;f=cache.h;h=d433fae7041b4431f6e462616135ea931337a48a;hp=0dfacd42eb0de384ff0c8953c84e69ab57d1e78e;hb=c0c78c92d57c53276bb7f08468bcc716ba272497;hpb=70ec71015a42e6e4e04b0281b80ec80e5f5f959a diff --git a/cache.h b/cache.h index 0dfacd4..d433fae 100644 --- a/cache.h +++ b/cache.h @@ -16,16 +16,20 @@ #include #include +#include #include "dns.h" +#include "interface.h" -struct cache_entry { +struct cache_service { struct avl_node avl; const char *entry; const char *host; uint32_t ttl; time_t time; + struct interface *iface; + int refresh; }; struct cache_record { @@ -39,16 +43,19 @@ struct cache_record { const uint8_t *rdata; uint16_t rdlength; time_t time; + struct interface *iface; }; -extern struct avl_tree records, entries; - -extern int cache_init(void); -extern void cache_scan(void); -extern void cache_cleanup(void); -extern void cache_answer(struct interface *iface, uint8_t *base, int blen, - char *name, struct dns_answer *a, uint8_t *rdata); -extern int cache_host_is_known(char *record); -extern char* cache_lookup_name(const char *key); +extern struct avl_tree services; + +int cache_init(void); +void cache_scan(void); +void cache_cleanup(struct interface *iface); +void cache_answer(struct interface *iface, uint8_t *base, int blen, + char *name, struct dns_answer *a, uint8_t *rdata, int flush); +int cache_host_is_known(char *record); +char *cache_lookup_name(const char *key); +void cache_dump_records(struct blob_buf *buf, const char *name); +void cache_dump_recursive(struct blob_buf *b, const char *name, uint16_t type, struct interface *iface); #endif