mirror of
https://github.com/systemd/systemd.git
synced 2024-12-22 17:35:35 +03:00
resolved: move resolv.conf to resolved's runtime dir
This commit is contained in:
parent
01501939d5
commit
b686acb27e
@ -58,7 +58,7 @@
|
||||
|
||||
<para><command>systemd-networkd</command> is a system
|
||||
service that manages network name resolution. It does so by
|
||||
generating <filename>/run/systemd/network/resolv.conf</filename>,
|
||||
generating <filename>/run/systemd/resolve/resolv.conf</filename>,
|
||||
which may be symlinked from <filename>/etc/resolv.conf</filename>.
|
||||
The contents is generated from the global settings in
|
||||
<citerefentry><refentrytitle>resolved.conf</refentrytitle><manvolnum>5</manvolnum></citerefentry>,
|
||||
@ -67,7 +67,7 @@
|
||||
<citerefentry><refentrytitle>systemd.network</refentrytitle><manvolnum>5</manvolnum></citerefentry>
|
||||
for more details.</para>
|
||||
|
||||
<para>Note that <filename>/run/systemd/network/resolv.conf</filename>
|
||||
<para>Note that <filename>/run/systemd/resolve/resolv.conf</filename>
|
||||
should not be used directly, but only through a symlink from
|
||||
<filename>/etc/resolv.conf</filename>.</para>
|
||||
</refsect1>
|
||||
|
@ -30,7 +30,6 @@
|
||||
#include "dhcp-lease-internal.h"
|
||||
#include "network-internal.h"
|
||||
#include "conf-parser.h"
|
||||
#include "mkdir.h"
|
||||
|
||||
static int set_fallback_dns(Manager *m, const char *string) {
|
||||
char *word, *state;
|
||||
@ -192,6 +191,7 @@ static void append_dns(FILE *f, void *dns, unsigned char family, unsigned *count
|
||||
}
|
||||
|
||||
int manager_update_resolv_conf(Manager *m) {
|
||||
const char *path = "/run/systemd/resolve/resolv.conf";
|
||||
_cleanup_free_ char *temp_path = NULL;
|
||||
_cleanup_fclose_ FILE *f = NULL;
|
||||
_cleanup_free_ unsigned *indices = NULL;
|
||||
@ -201,7 +201,7 @@ int manager_update_resolv_conf(Manager *m) {
|
||||
|
||||
assert(m);
|
||||
|
||||
r = fopen_temporary("/run/systemd/network/resolv.conf", &f, &temp_path);
|
||||
r = fopen_temporary(path, &f, &temp_path);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@ -263,9 +263,9 @@ int manager_update_resolv_conf(Manager *m) {
|
||||
|
||||
fflush(f);
|
||||
|
||||
if (ferror(f) || rename(temp_path, "/run/systemd/network/resolv.conf") < 0) {
|
||||
if (ferror(f) || rename(temp_path, path) < 0) {
|
||||
r = -errno;
|
||||
unlink("/run/systemd/network/resolv.conf");
|
||||
unlink(path);
|
||||
unlink(temp_path);
|
||||
return r;
|
||||
}
|
||||
|
@ -43,7 +43,7 @@ int main(int argc, char *argv[]) {
|
||||
}
|
||||
|
||||
/* Always create the directory where resolv.conf will live */
|
||||
r = mkdir_label("/run/systemd/network", 0755);
|
||||
r = mkdir_label("/run/systemd/resolve", 0755);
|
||||
if (r < 0)
|
||||
log_error("Could not create runtime directory: %s",
|
||||
strerror(-r));
|
||||
|
Loading…
Reference in New Issue
Block a user