X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-dns-scope.h;h=639c4b4e86c0e54fdf4da977601888c30b8495d2;hp=b5fae2d7a1ff949414f98a9b33a7230697568ab8;hb=623a4c97b9175f95c4b1c6fc34e36c56f1e4ddbf;hpb=322345fdb9865ef2477fba8e4bdde0e1183ef505 diff --git a/src/resolve/resolved-dns-scope.h b/src/resolve/resolved-dns-scope.h index b5fae2d7a..639c4b4e8 100644 --- a/src/resolve/resolved-dns-scope.h +++ b/src/resolve/resolved-dns-scope.h @@ -31,11 +31,8 @@ typedef struct DnsScope DnsScope; #include "resolved-dns-packet.h" #include "resolved-dns-query.h" #include "resolved-dns-cache.h" - -typedef enum DnsScopeType { - DNS_SCOPE_DNS, - DNS_SCOPE_MDNS, -} DnsScopeType; +#include "resolved-dns-zone.h" +#include "resolved-dns-stream.h" typedef enum DnsScopeMatch { DNS_SCOPE_NO, @@ -48,27 +45,34 @@ typedef enum DnsScopeMatch { struct DnsScope { Manager *manager; - DnsScopeType type; - unsigned char family; + DnsProtocol protocol; + int family; Link *link; char **domains; DnsCache cache; + DnsZone zone; LIST_HEAD(DnsQueryTransaction, transactions); LIST_FIELDS(DnsScope, scopes); }; -int dns_scope_new(Manager *m, DnsScope **ret, DnsScopeType t); +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_tcp_socket(DnsScope *s); +int dns_scope_tcp_socket(DnsScope *s, int family, const union in_addr_union *address, uint16_t port); -DnsScopeMatch dns_scope_test(DnsScope *s, const char *domain); +DnsScopeMatch dns_scope_good_domain(DnsScope *s, 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); DnsServer *dns_scope_get_server(DnsScope *s); void dns_scope_next_dns_server(DnsScope *s); + +int dns_scope_llmnr_membership(DnsScope *s, bool b); + +void dns_scope_process_query(DnsScope *s, DnsStream *stream, DnsPacket *p);