package-helpers-cmxsl/helpers/DATA/netcfg/04_ruc_1.142ubuntu4.patch

83 lines
2.6 KiB
Diff

From a015330a3b16ec2c79c06b65f449c7f367b6599f Mon Sep 17 00:00:00 2001
From: Dimitri John Ledkov <xnox@ubuntu.com>
Date: Wed, 20 Sep 2017 09:52:03 +0100
Subject: 1.142ubuntu4 (patches unapplied)
Imported using git-ubuntu import.
---
debian/changelog | 6 ++++++
netcfg-common.c | 18 +++++++++++++++++-
netcfg.h | 2 ++
post-base-installer.d/40netcfg | 6 ++++++
4 files changed, 31 insertions(+), 1 deletion(-)
diff --git a/netcfg-common.c b/netcfg-common.c
index d747450..8afe70d 100644
--- a/netcfg-common.c
+++ b/netcfg-common.c
@@ -1403,7 +1403,8 @@ void reap_old_files (void)
unlink(*ptr++);
if (!is_resolvconf_used())
- unlink(RESOLV_FILE);
+ if (!is_resolved_used())
+ unlink(RESOLV_FILE);
}
/* Convert a space-separated list of nameservers in a single string (as might
@@ -1816,3 +1817,18 @@ int is_resolvconf_used()
return resolvconf_used;
}
+
+/* Check if /etc/resolv.conf symlinks to /run/systemd/resolve/stub-resolv.conf. */
+int is_resolved_used()
+{
+ int resolved_used = 0;
+
+ char *path = realpath(RESOLV_FILE, NULL);
+
+ if (path) {
+ resolved_used = !strcmp(path, RESOLVED_FILE);
+ free(path);
+ }
+
+ return resolved_used;
+}
diff --git a/netcfg.h b/netcfg.h
index ae3f34c..437c87e 100644
--- a/netcfg.h
+++ b/netcfg.h
@@ -8,6 +8,7 @@
#define NETWORKS_FILE "/etc/networks"
#define RESOLV_FILE "/etc/resolv.conf"
#define RESOLVCONF_FILE "/run/resolvconf/resolv.conf"
+#define RESOLVED_FILE "/run/systemd/resolve/stub-resolv.conf"
#define DHCLIENT_CONF "/etc/dhclient.conf"
#define DOMAIN_FILE "/tmp/domain_name"
#define NTP_SERVER_FILE "/tmp/dhcp-ntp-servers"
@@ -203,6 +204,7 @@ extern int nameserver_count (const struct netcfg_interface *interface);
extern int read_resolv_conf_nameservers (char *resolv_conf_file, struct netcfg_interface *interface);
extern int is_resolvconf_used();
+extern int is_resolved_used();
extern void sigchld_handler (int sig __attribute__ ((unused)));
diff --git a/post-base-installer.d/40netcfg b/post-base-installer.d/40netcfg
index 9d19e33..ee717c2 100755
--- a/post-base-installer.d/40netcfg
+++ b/post-base-installer.d/40netcfg
@@ -5,3 +5,9 @@ if [ -L /target/etc/resolv.conf ] && [ -f /target/run/resolvconf/resolv.conf ];
mkdir -p /run/resolvconf
cp /target/run/resolvconf/resolv.conf /run/resolvconf/resolv.conf
fi
+
+# Make sure resolved will still work with bind-mounted /run
+if [ -L /target/etc/resolv.conf ] && [ -f /target/run/systemd/resolve/stub-resolv.conf ]; then
+ mkdir -p /run/systemd/resolve/
+ cp /target/run/systemd/resolve/stub-resolv.conf /run/systemd/resolve/stub-resolv.conf
+fi
--
cgit v1.1