forked from pool/systemd
78 lines
2.5 KiB
Diff
78 lines
2.5 KiB
Diff
|
From: Frederic Crozat <fcrozat@suse.com>
|
||
|
Date: Fri, 15 Feb 2013 16:04:39 +0000
|
||
|
Subject: handle /etc/HOSTNAME
|
||
|
|
||
|
(bnc#803653)
|
||
|
---
|
||
|
src/core/hostname-setup.c | 22 +++++++++++++++++-----
|
||
|
src/hostname/hostnamed.c | 12 +++++++++++-
|
||
|
2 files changed, 28 insertions(+), 6 deletions(-)
|
||
|
|
||
|
--- systemd-206/src/core/hostname-setup.c
|
||
|
+++ systemd-206/src/core/hostname-setup.c
|
||
|
@@ -61,12 +61,24 @@ int hostname_setup(void) {
|
||
|
|
||
|
r = read_and_strip_hostname("/etc/hostname", &b);
|
||
|
if (r < 0) {
|
||
|
- if (r == -ENOENT)
|
||
|
- enoent = true;
|
||
|
- else
|
||
|
- log_warning("Failed to read configured hostname: %s", strerror(-r));
|
||
|
+ if (r == -ENOENT) {
|
||
|
+ /* use SUSE fallback */
|
||
|
+ r = read_and_strip_hostname("/etc/HOSTNAME", &b);
|
||
|
+ if (r < 0) {
|
||
|
+ if (r == -ENOENT)
|
||
|
+ enoent = true;
|
||
|
+ else
|
||
|
+ log_warning("Failed to read configured hostname: %s", strerror(-r));
|
||
|
+ hn = NULL;
|
||
|
+ }
|
||
|
+ else
|
||
|
+ hn = b;
|
||
|
|
||
|
- hn = NULL;
|
||
|
+ }
|
||
|
+ else {
|
||
|
+ log_warning("Failed to read configured hostname: %s", strerror(-r));
|
||
|
+ hn = NULL;
|
||
|
+ }
|
||
|
} else
|
||
|
hn = b;
|
||
|
|
||
|
--- systemd-209/src/hostname/hostnamed.c
|
||
|
+++ systemd-209/src/hostname/hostnamed.c 2014-02-28 11:36:30.594735241 +0000
|
||
|
@@ -89,6 +89,10 @@ static int context_read_data(Context *c)
|
||
|
if (r < 0 && r != -ENOENT)
|
||
|
return r;
|
||
|
|
||
|
+ r = read_one_line_file("/etc/HOSTNAME", &c->data[PROP_STATIC_HOSTNAME]);
|
||
|
+ if (r < 0 && r != -ENOENT)
|
||
|
+ return r;
|
||
|
+
|
||
|
return 0;
|
||
|
}
|
||
|
|
||
|
@@ -246,6 +250,7 @@ static int context_write_data_hostname(C
|
||
|
}
|
||
|
|
||
|
static int context_write_data_static_hostname(Context *c) {
|
||
|
+ int r;
|
||
|
|
||
|
assert(c);
|
||
|
|
||
|
@@ -256,7 +261,12 @@ static int context_write_data_static_hos
|
||
|
|
||
|
return 0;
|
||
|
}
|
||
|
- return write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]);
|
||
|
+
|
||
|
+ r = write_string_file_atomic_label("/etc/hostname", c->data[PROP_STATIC_HOSTNAME]);
|
||
|
+ if (!r) {
|
||
|
+ r = symlink_atomic("/etc/hostname", "/etc/HOSTNAME");
|
||
|
+ }
|
||
|
+ return r;
|
||
|
}
|
||
|
|
||
|
static int context_write_data_other(Context *c) {
|