X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fresolve%2Fresolved-manager.h;h=1151029d29fdec7cdf0ace882ba6e4bd38418d8f;hp=7bb18c0d666ada6286a50023cc8d39f606ae40b4;hb=9f03ee51a2207954ef18be79ca3e11cd14ca56fd;hpb=5cb36f41f01cf4b1f4395abfffd1b33116591e58 diff --git a/src/resolve/resolved-manager.h b/src/resolve/resolved-manager.h index 7bb18c0d6..1151029d2 100644 --- a/src/resolve/resolved-manager.h +++ b/src/resolve/resolved-manager.h @@ -30,20 +30,21 @@ #include "hashmap.h" typedef struct Manager Manager; +typedef enum Support Support; -#include "resolved-dns-query.h" -#include "resolved-dns-server.h" -#include "resolved-dns-scope.h" -#include "resolved-dns-stream.h" -#include "resolved-link.h" - -typedef enum Support { +enum Support { SUPPORT_NO, SUPPORT_YES, SUPPORT_RESOLVE, _SUPPORT_MAX, _SUPPORT_INVALID = -1 -} Support; +}; + +#include "resolved-dns-query.h" +#include "resolved-dns-server.h" +#include "resolved-dns-scope.h" +#include "resolved-dns-stream.h" +#include "resolved-link.h" struct Manager { sd_event *event; @@ -107,6 +108,9 @@ struct Manager { /* Watch the system hostname */ int hostname_fd; sd_event_source *hostname_event_source; + + /* Watch for system suspends */ + sd_bus_slot *prepare_for_sleep_slot; }; /* Manager */ @@ -114,10 +118,12 @@ struct Manager { int manager_new(Manager **ret); Manager* manager_free(Manager *m); +int manager_start(Manager *m); int manager_read_resolv_conf(Manager *m); int manager_write_resolv_conf(Manager *m); -bool manager_known_dns_server(Manager *m, int family, const union in_addr_union *in_addr); +DnsServer *manager_set_dns_server(Manager *m, DnsServer *s); +DnsServer *manager_find_dns_server(Manager *m, int family, const union in_addr_union *in_addr); DnsServer *manager_get_dns_server(Manager *m); void manager_next_dns_server(Manager *m); @@ -133,14 +139,18 @@ int manager_llmnr_ipv6_udp_fd(Manager *m); int manager_llmnr_ipv4_tcp_fd(Manager *m); int manager_llmnr_ipv6_tcp_fd(Manager *m); -int manager_ifindex_is_loopback(Manager *m, int ifindex); int manager_find_ifindex(Manager *m, int family, const union in_addr_union *in_addr); LinkAddress* manager_find_link_address(Manager *m, int family, const union in_addr_union *in_addr); void manager_refresh_rrs(Manager *m); int manager_next_hostname(Manager *m); -int manager_our_packet(Manager *m, DnsPacket *p); +bool manager_our_packet(Manager *m, DnsPacket *p); +DnsScope* manager_find_scope(Manager *m, DnsPacket *p); + +void manager_verify_all(Manager *m); + +void manager_flush_dns_servers(Manager *m, DnsServerType t); DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);