chiark / gitweb /
resolved: don't read DHCP leases
[elogind.git] / src / resolve / resolved.h
index 438730be6e3c7df6c4e86e715af1baf1b60c824a..35ef8bdea104b592a24c57c35f7efb1e23e33a12 100644 (file)
@@ -38,7 +38,9 @@ typedef struct Manager Manager;
 struct Manager {
         sd_event *event;
 
-        /* network */
+        bool use_llmnr:1;
+
+        /* Network */
         Hashmap *links;
 
         sd_rtnl *rtnl;
@@ -47,22 +49,33 @@ struct Manager {
         sd_network_monitor *network_monitor;
         sd_event_source *network_event_source;
 
-        /* unicast dns */
+        /* DNS query management */
+        Hashmap *dns_query_transactions;
+        LIST_HEAD(DnsQuery, dns_queries);
+        unsigned n_dns_queries;
+
+        /* Unicast dns */
         int dns_ipv4_fd;
         int dns_ipv6_fd;
 
         sd_event_source *dns_ipv4_event_source;
         sd_event_source *dns_ipv6_event_source;
 
-        Hashmap *dns_query_transactions;
-        LIST_HEAD(DnsQuery, dns_queries);
-
         LIST_HEAD(DnsServer, dns_servers);
         DnsServer *current_dns_server;
 
         LIST_HEAD(DnsScope, dns_scopes);
         DnsScope *unicast_scope;
 
+        /* LLMNR */
+        int llmnr_ipv4_udp_fd;
+        int llmnr_ipv6_udp_fd;
+        /* int llmnr_ipv4_tcp_fd; */
+        /* int llmnr_ipv6_tcp_fd; */
+
+        sd_event_source *llmnr_ipv4_udp_event_source;
+        sd_event_source *llmnr_ipv6_udp_event_source;
+
         /* dbus */
         sd_bus *bus;
         sd_event_source *bus_retry_event_source;
@@ -76,17 +89,18 @@ Manager* manager_free(Manager *m);
 int manager_parse_config_file(Manager *m);
 int manager_write_resolv_conf(Manager *m);
 
-DnsServer* manager_find_dns_server(Manager *m, unsigned char family, union in_addr_union *in_addr);
+DnsServer* manager_find_dns_server(Manager *m, int family, 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_dns_ipv4_fd(Manager *m);
-int manager_dns_ipv4_send(Manager *m, DnsServer *srv, int ifindex, DnsPacket *p);
-int manager_dns_ipv4_recv(Manager *m, DnsPacket **ret);
+int manager_send(Manager *m, int fd, int ifindex, int family, union in_addr_union *addr, uint16_t port, DnsPacket *p);
+int manager_recv(Manager *m, int fd, DnsProtocol protocol, DnsPacket **ret);
 
+int manager_dns_ipv4_fd(Manager *m);
 int manager_dns_ipv6_fd(Manager *m);
-int manager_dns_ipv6_send(Manager *m, DnsServer *srv, int ifindex, DnsPacket *p);
-int manager_dns_ipv6_recv(Manager *m, DnsPacket **ret);
+int manager_llmnr_ipv4_udp_fd(Manager *m);
+int manager_llmnr_ipv6_udp_fd(Manager *m);
 
 int manager_connect_bus(Manager *m);