#include "time-util.h"
#include "list.h"
-typedef struct DnsCacheItem DnsCacheItem;
-
typedef struct DnsCache {
Hashmap *by_key;
Prioq *by_expiry;
#include "resolved-dns-question.h"
#include "resolved-dns-answer.h"
-typedef enum DnsCacheItemType {
- DNS_CACHE_POSITIVE,
- DNS_CACHE_NODATA,
- DNS_CACHE_NXDOMAIN,
-} DnsCacheItemType;
-
-typedef struct DnsCacheItem {
- DnsResourceKey *key;
- DnsResourceRecord *rr;
- usec_t until;
- DnsCacheItemType type;
- unsigned prioq_idx;
- LIST_FIELDS(DnsCacheItem, by_key);
-} DnsCacheItem;
-
void dns_cache_flush(DnsCache *c);
void dns_cache_prune(DnsCache *c);
-int dns_cache_put(DnsCache *c, DnsQuestion *q, int rcode, DnsAnswer *answer, usec_t timestamp);
+int dns_cache_put(DnsCache *c, DnsQuestion *q, int rcode, DnsAnswer *answer, unsigned max_rrs, usec_t timestamp, int owner_family, const union in_addr_union *owner_address);
int dns_cache_lookup(DnsCache *c, DnsQuestion *q, int *rcode, DnsAnswer **answer);
+
+int dns_cache_check_conflicts(DnsCache *cache, DnsResourceRecord *rr, int owner_family, const union in_addr_union *owner_address);