chiark / gitweb /
hostnamed: watch system hostname changes and update LLMNR RRs accordingly
[elogind.git] / src / resolve / resolved.h
index 6aa0fc9e56dd846847ac489cc2a929a9a726842b..34eb7b5c5abca5815fcf0963ac636c6860c40180 100644 (file)
@@ -51,7 +51,7 @@ struct Manager {
         sd_event_source *network_event_source;
 
         /* DNS query management */
-        Hashmap *dns_query_transactions;
+        Hashmap *dns_transactions;
         LIST_HEAD(DnsQuery, dns_queries);
         unsigned n_dns_queries;
 
@@ -90,6 +90,10 @@ struct Manager {
         char *hostname;
         DnsResourceKey *host_ipv4_key;
         DnsResourceKey *host_ipv6_key;
+
+        /* Watch the system hostname */
+        int hostname_fd;
+        sd_event_source *hostname_event_source;
 };
 
 /* Manager */
@@ -103,6 +107,7 @@ int manager_write_resolv_conf(Manager *m);
 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);
+
 uint32_t manager_find_mtu(Manager *m);
 
 int manager_send(Manager *m, int fd, int ifindex, int family, const union in_addr_union *addr, uint16_t port, DnsPacket *p);
@@ -117,7 +122,12 @@ 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_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);
 int manager_connect_bus(Manager *m);
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);