1
1
mirror of https://github.com/systemd/systemd-stable.git synced 2025-01-25 06:03:40 +03:00

hostname-setup: also consider (ńone) an unset hostname

This commit is contained in:
Lennart Poettering 2012-05-21 17:19:58 +02:00
parent 97f25a02ee
commit 344de60901
3 changed files with 17 additions and 19 deletions

View File

@ -151,31 +151,20 @@ int hostname_setup(void) {
r = read_hostname(&b);
if (r < 0) {
hn = NULL;
if (r == -ENOENT)
enoent = true;
else
log_warning("Failed to read configured hostname: %s", strerror(-r));
hn = NULL;
} else
hn = b;
if (!hn) {
/* Don't override the hostname if it is unset and not
* explicitly configured */
char *old_hostname = NULL;
old_hostname = gethostname_malloc();
if (old_hostname) {
bool already_set;
already_set = old_hostname[0] != 0;
free(old_hostname);
if (already_set)
goto finish;
}
if (isempty(hn)) {
/* Don't override the hostname if it is already set
* and not explicitly configured */
if (hostname_is_set())
goto finish;
if (enoent)
log_info("No hostname configured.");

View File

@ -2949,12 +2949,20 @@ char* gethostname_malloc(void) {
assert_se(uname(&u) >= 0);
if (u.nodename[0])
if (!isempty(u.nodename) && !streq(u.nodename, "(none)"))
return strdup(u.nodename);
return strdup(u.sysname);
}
bool hostname_is_set(void) {
struct utsname u;
assert_se(uname(&u) >= 0);
return !isempty(u.nodename) && !streq(u.nodename, "(none)");
}
char* getlogname_malloc(void) {
uid_t uid;
long bufsize;

View File

@ -337,6 +337,7 @@ void rename_process(const char name[8]);
void sigset_add_many(sigset_t *ss, ...);
char* gethostname_malloc(void);
bool hostname_is_set(void);
char* getlogname_malloc(void);
int getttyname_malloc(int fd, char **r);