mirror of
https://github.com/systemd/systemd-stable.git
synced 2025-01-11 05:17:44 +03:00
Use the DEFAULT_HOSTNAME field from os-release
This provides a fairly comprehensible fix for https://bugzilla.redhat.com/show_bug.cgi?id=1893417. This adds yet-another level of configuration: - /etc/hostname - transient hostname - $SYSTEMD_DEFAULT_HOSTNAME - DEFAULT_HOSTNAME is os-release - -Dfallback-hostname= - "linux" It's a lot of layers, but each has it's own justification.
This commit is contained in:
parent
05c6f341b1
commit
e7637751c4
@ -14,6 +14,8 @@
|
||||
#include "strv.h"
|
||||
|
||||
char* get_default_hostname(void) {
|
||||
int r;
|
||||
|
||||
const char *e = secure_getenv("SYSTEMD_DEFAULT_HOSTNAME");
|
||||
if (e) {
|
||||
if (hostname_is_valid(e, 0))
|
||||
@ -21,6 +23,16 @@ char* get_default_hostname(void) {
|
||||
log_debug("Invalid hostname in $SYSTEMD_DEFAULT_HOSTNAME, ignoring: %s", e);
|
||||
}
|
||||
|
||||
_cleanup_free_ char *f = NULL;
|
||||
r = parse_os_release(NULL, "DEFAULT_HOSTNAME", &f);
|
||||
if (r < 0)
|
||||
log_debug_errno(r, "Failed to parse os-release, ignoring: %m");
|
||||
else if (f) {
|
||||
if (hostname_is_valid(f, 0))
|
||||
return TAKE_PTR(f);
|
||||
log_debug("Invalid hostname in os-release, ignoring: %s", f);
|
||||
}
|
||||
|
||||
return strdup(FALLBACK_HOSTNAME);
|
||||
}
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user