chiark / gitweb /
sd-dhcp-client/networkd: add domainname support
[elogind.git] / src / network / networkd.h
index 55181f2bbc53f1624ab4ab0572d3376b44e5cc63..c684eb8a8f8e06b0cf1709524d82cd3f93398333 100644 (file)
@@ -26,6 +26,7 @@
 
 #include "sd-event.h"
 #include "sd-rtnl.h"
+#include "sd-bus.h"
 #include "sd-dhcp-client.h"
 #include "udev.h"
 
@@ -85,9 +86,14 @@ struct Network {
         char *description;
         Bridge *bridge;
         bool dhcp;
+        bool dhcp_dns;
+        bool dhcp_mtu;
+        bool dhcp_hostname;
+        bool dhcp_domainname;
 
         LIST_HEAD(Address, static_addresses);
         LIST_HEAD(Route, static_routes);
+        Address *dns;
 
         Hashmap *addresses_by_section;
         Hashmap *routes_by_section;
@@ -157,6 +163,8 @@ struct Link {
 
         Route *dhcp_route;
         Address *dhcp_address;
+        Address *dns;
+        uint16_t original_mtu;
 
         LinkState state;
 
@@ -169,6 +177,7 @@ struct Link {
 struct Manager {
         sd_rtnl *rtnl;
         sd_event *event;
+        sd_bus *bus;
         struct udev *udev;
         struct udev_monitor *udev_monitor;
         sd_event_source *udev_event_source;
@@ -194,6 +203,9 @@ int manager_udev_enumerate_links(Manager *m);
 int manager_udev_listen(Manager *m);
 
 int manager_rtnl_listen(Manager *m);
+int manager_bus_listen(Manager *m);
+
+int manager_update_resolv_conf(Manager *m);
 
 DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
 #define _cleanup_manager_free_ _cleanup_(manager_freep)
@@ -258,6 +270,10 @@ int address_drop(Address *address, Link *link, sd_rtnl_message_handler_t callbac
 DEFINE_TRIVIAL_CLEANUP_FUNC(Address*, address_free);
 #define _cleanup_address_free_ _cleanup_(address_freep)
 
+int config_parse_dns(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);
+
 int config_parse_address(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);