X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fresolve%2Fresolved-manager.h;h=1151029d29fdec7cdf0ace882ba6e4bd38418d8f;hb=0eb3cc88504b5d8f740764047ac5162b67992386;hp=31d670da44e9804f301d6224e130c0e6abb76dff;hpb=2c27fbca2d88214bd305272308a370a962818f1e;p=elogind.git diff --git a/src/resolve/resolved-manager.h b/src/resolve/resolved-manager.h index 31d670da4..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,6 +118,7 @@ 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); @@ -134,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);