X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fresolve%2Fresolved-link.h;h=4f0702e872b7ca318a66b68dd6ebb49dc7990449;hb=d1bddcec98551ea748f39a742a4cbcf9ea9254ef;hp=cef0400b217bb192be92100d5552027a9ca2638f;hpb=6073b6f26ab9fc6bf335faa7073ec443eef093fd;p=elogind.git diff --git a/src/resolve/resolved-link.h b/src/resolve/resolved-link.h index cef0400b2..4f0702e87 100644 --- a/src/resolve/resolved-link.h +++ b/src/resolve/resolved-link.h @@ -29,9 +29,10 @@ typedef struct Link Link; typedef struct LinkAddress LinkAddress; -#include "resolved.h" #include "resolved-dns-server.h" #include "resolved-dns-scope.h" +#include "resolved-dns-rr.h" +#include "resolved-manager.h" struct LinkAddress { Link *link; @@ -41,6 +42,9 @@ struct LinkAddress { unsigned char flags, scope; + DnsResourceRecord *llmnr_address_rr; + DnsResourceRecord *llmnr_ptr_rr; + LIST_FIELDS(LinkAddress, addresses); }; @@ -55,15 +59,14 @@ struct Link { LIST_HEAD(DnsServer, dns_servers); DnsServer *current_dns_server; + Support llmnr_support; + DnsScope *unicast_scope; DnsScope *llmnr_ipv4_scope; DnsScope *llmnr_ipv6_scope; char name[IF_NAMESIZE]; uint32_t mtu; - - RateLimit mdns_ratelimit; - RateLimit llmnr_ratelimit; }; int link_new(Manager *m, Link **ret, int ifindex); @@ -71,15 +74,18 @@ Link *link_free(Link *l); int link_update_rtnl(Link *l, sd_rtnl_message *m); int link_update_monitor(Link *l); bool link_relevant(Link *l, int family); -LinkAddress* link_find_address(Link *l, int family, union in_addr_union *in_addr); +LinkAddress* link_find_address(Link *l, int family, const union in_addr_union *in_addr); +void link_add_rrs(Link *l, bool force_remove); -DnsServer* link_find_dns_server(Link *l, int family, union in_addr_union *in_addr); +DnsServer* link_set_dns_server(Link *l, DnsServer *s); +DnsServer* link_find_dns_server(Link *l, int family, const union in_addr_union *in_addr); DnsServer* link_get_dns_server(Link *l); void link_next_dns_server(Link *l); -int link_address_new(Link *l, LinkAddress **ret, int family, union in_addr_union *in_addr); +int link_address_new(Link *l, LinkAddress **ret, int family, const union in_addr_union *in_addr); LinkAddress *link_address_free(LinkAddress *a); int link_address_update_rtnl(LinkAddress *a, sd_rtnl_message *m); bool link_address_relevant(LinkAddress *l); +void link_address_add_rrs(LinkAddress *a, bool force_remove); DEFINE_TRIVIAL_CLEANUP_FUNC(Link*, link_free);