47d443e
From 86aa208e639b119007332718aa4f453af2a061d0 Mon Sep 17 00:00:00 2001
6428127
From: =?UTF-8?q?Zbigniew=20J=C4=99drzejewski-Szmek?= <zbyszek@in.waw.pl>
6428127
Date: Fri, 11 Mar 2016 17:06:17 -0500
6153dd9
Subject: [PATCH] resolved: create /etc/resolv.conf symlink at runtime
6428127
6428127
If the symlink doesn't exists, and we are being started, let's
6428127
create it to provie name resolution.
6428127
6428127
If it exists, do nothing. In particular, if it is a broken symlink,
6428127
we cannot really know if the administator configured it to point to
6428127
a location used by some service that hasn't started yet, so we
6428127
don't touch it in that case either.
6428127
6428127
https://bugzilla.redhat.com/show_bug.cgi?id=1313085
6428127
---
6428127
 src/resolve/resolved.c | 4 ++++
6428127
 tmpfiles.d/etc.conf.m4 | 3 ---
6428127
 2 files changed, 4 insertions(+), 3 deletions(-)
6428127
6428127
diff --git a/src/resolve/resolved.c b/src/resolve/resolved.c
47d443e
index f4efddf8e5..3386e3bf67 100644
6428127
--- a/src/resolve/resolved.c
6428127
+++ b/src/resolve/resolved.c
47d443e
@@ -45,6 +45,10 @@ static int run(int argc, char *argv[]) {
47d443e
         /* Drop privileges, but only if we have been started as root. If we are not running as root we assume most
3cb1145
          * privileges are already dropped. */
3cb1145
         if (getuid() == 0) {
3cb1145
+                r = symlink("../run/systemd/resolve/resolv.conf", "/etc/resolv.conf");
3cb1145
+                if (r < 0 && errno != EEXIST)
3cb1145
+                        log_warning_errno(errno,
3cb1145
+                                          "Could not create /etc/resolv.conf symlink: %m");
6428127
 
3cb1145
                 /* Drop privileges, but keep three caps. Note that we drop those too, later on (see below) */
3cb1145
                 r = drop_privileges(uid, gid,
6428127
diff --git a/tmpfiles.d/etc.conf.m4 b/tmpfiles.d/etc.conf.m4
1eeb98d
index df8d42101c..928105ea8d 100644
6428127
--- a/tmpfiles.d/etc.conf.m4
6428127
+++ b/tmpfiles.d/etc.conf.m4
6428127
@@ -13,9 +13,6 @@ L+ /etc/mtab - - - - ../proc/self/mounts
6428127
 m4_ifdef(`HAVE_SMACK_RUN_LABEL',
6428127
 t /etc/mtab - - - - security.SMACK64=_
6428127
 )m4_dnl
3cb1145
-m4_ifdef(`ENABLE_RESOLVE',
1eeb98d
-L! /etc/resolv.conf - - - - ../run/systemd/resolve/stub-resolv.conf
6428127
-)m4_dnl
6428127
 C /etc/nsswitch.conf - - - -
6428127
 m4_ifdef(`HAVE_PAM',
6428127
 C /etc/pam.d - - - -
47d443e
-- 
47d443e
2.19.2
47d443e