X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fresolve%2Fresolved-dns-scope.h;h=f05648e5a5c1dfbda2b967110a6d207dca2cbc38;hb=1e43061b67336052b5b231840a38508a5397a363;hp=ae9469a39f24d46073f28834484eff9d2191a099;hpb=aea2429d6ec32261dbf6b9caa125fcc6ea9ea76a;p=elogind.git diff --git a/src/resolve/resolved-dns-scope.h b/src/resolve/resolved-dns-scope.h index ae9469a39..f05648e5a 100644 --- a/src/resolve/resolved-dns-scope.h +++ b/src/resolve/resolved-dns-scope.h @@ -55,6 +55,9 @@ struct DnsScope { DnsCache cache; DnsZone zone; + OrderedHashmap *conflict_queue; + sd_event_source *conflict_event_source; + RateLimit ratelimit; LIST_HEAD(DnsTransaction, transactions); @@ -65,10 +68,10 @@ struct DnsScope { int dns_scope_new(Manager *m, DnsScope **ret, Link *l, DnsProtocol p, int family); DnsScope* dns_scope_free(DnsScope *s); -int dns_scope_send(DnsScope *s, DnsPacket *p); +int dns_scope_emit(DnsScope *s, DnsPacket *p); int dns_scope_tcp_socket(DnsScope *s, int family, const union in_addr_union *address, uint16_t port); -DnsScopeMatch dns_scope_good_domain(DnsScope *s, const char *domain); +DnsScopeMatch dns_scope_good_domain(DnsScope *s, int ifindex, uint64_t flags, const char *domain); int dns_scope_good_key(DnsScope *s, DnsResourceKey *key); int dns_scope_good_dns_server(DnsScope *s, int family, const union in_addr_union *address); @@ -80,3 +83,6 @@ int dns_scope_llmnr_membership(DnsScope *s, bool b); void dns_scope_process_query(DnsScope *s, DnsStream *stream, DnsPacket *p); DnsTransaction *dns_scope_find_transaction(DnsScope *scope, DnsQuestion *question, bool cache_ok); + +int dns_scope_notify_conflict(DnsScope *scope, DnsResourceRecord *rr); +void dns_scope_check_conflicts(DnsScope *scope, DnsPacket *p);