summaryrefslogtreecommitdiff
path: root/src/network/networkd-network.c
diff options
context:
space:
mode:
authorTom Gundersen <teg@jklm.no>2014-01-05 23:01:10 +0100
committerTom Gundersen <teg@jklm.no>2014-01-12 15:37:21 +0100
commit3bef724f7e7f7eaca69881548b06e221b77d7031 (patch)
tree0b17e5a43d7e5c5d07dc696d23d4c829f9ab7200 /src/network/networkd-network.c
parent924fe4304af981ffd849346b4a1d415f11e9dd79 (diff)
networkd: generate resolv.conf
This adds support to generate a basic resolv.conf in /run/systemd/network. This file will not take any effect unless a symlink is created from /etc/resolv.conf. Nameservers received over DHCP takes precedence over statically configured ones. Note: /etc/resolv.conf is severely limited, so in the future we will likely rather provide a much more powerfull nss plugin (or something to that effect), but this should allow current users to function without any loss of functionality.
Diffstat (limited to 'src/network/networkd-network.c')
-rw-r--r--src/network/networkd-network.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/src/network/networkd-network.c b/src/network/networkd-network.c
index f2546440cf..f987310011 100644
--- a/src/network/networkd-network.c
+++ b/src/network/networkd-network.c
@@ -144,6 +144,8 @@ void network_free(Network *network) {
free(network->description);
+ address_free(network->dns);
+
while ((route = network->static_routes))
route_free(route);
@@ -197,6 +199,12 @@ int network_apply(Manager *manager, Network *network, Link *link) {
if (r < 0)
return r;
+ if (network->dns) {
+ r = manager_update_resolv_conf(manager);
+ if (r < 0)
+ return r;
+ }
+
return 0;
}