chiark / gitweb /
networkd: keep list of active addresses
[elogind.git] / src / network / networkd.h
index 3b29842f194b4730f224bd41b87c23793ea47015..30a29c7b67dfa76cb6672bcfc981a934ff45ee8c 100644 (file)
@@ -150,7 +150,7 @@ struct Network {
         Hashmap *addresses_by_section;
         Hashmap *routes_by_section;
 
-        Set *dns;
+        LIST_HEAD(Address, dns);
 
         LIST_FIELDS(Network, networks);
 };
@@ -232,6 +232,8 @@ struct Link {
         unsigned route_messages;
         unsigned enslaving;
 
+        LIST_HEAD(Address, addresses);
+
         sd_dhcp_client *dhcp_client;
         sd_dhcp_lease *dhcp_lease;
         char *lease_file;
@@ -282,6 +284,12 @@ int manager_save(Manager *m);
 DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
 #define _cleanup_manager_free_ _cleanup_(manager_freep)
 
+const struct ConfigPerfItem* networkd_gperf_lookup(const char *key, unsigned length);
+
+int config_parse_dnsv(const char *unit, const char *filename, unsigned line,
+                     const char *section, unsigned section_line, const char *lvalue,
+                     int ltype, const char *rvalue, void *data, void *userdata);
+
 /* NetDev */
 
 int netdev_load(Manager *manager);
@@ -380,6 +388,7 @@ void address_free(Address *address);
 int address_configure(Address *address, Link *link, sd_rtnl_message_handler_t callback);
 int address_update(Address *address, Link *link, sd_rtnl_message_handler_t callback);
 int address_drop(Address *address, Link *link, sd_rtnl_message_handler_t callback);
+bool address_equal(Address *a1, Address *a2);
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(Address*, address_free);
 #define _cleanup_address_free_ _cleanup_(address_freep)