mirror of
https://github.com/systemd/systemd-stable.git
synced 2024-10-28 11:55:23 +03:00
hostnamectl: allow trailing dot on fqdn
When the user requests to set hostname, and we are setting both pretty and static hostnames, and the name is a valid FQDN, we use it as the static hostname, and unset the pretty hostname. The change is that a FQDN with a trailing dot is accepted and ignored. https://bugzilla.redhat.com/show_bug.cgi?id=1238246 Lowercasing of the static name is not done anymore. $ hostnamectl set-hostname Foobar. => static is "Foobar", pretty is "Foobar." $ hostnamectl set-hostname Foobar.org. => static is "Foobar.org", pretty is unset $ hostnamectl set-hostname Foobar.org.. => static is "Foobar.org", pretty is "Foobar.org.."
This commit is contained in:
parent
79f17ea6f8
commit
17eb9a9ddb
@ -252,7 +252,7 @@ static int set_simple_string(sd_bus *bus, const char *method, const char *value)
|
||||
|
||||
static int set_hostname(sd_bus *bus, char **args, unsigned n) {
|
||||
_cleanup_free_ char *h = NULL;
|
||||
const char *hostname = args[1];
|
||||
char *hostname = args[1];
|
||||
int r;
|
||||
|
||||
assert(args);
|
||||
@ -270,17 +270,16 @@ static int set_hostname(sd_bus *bus, char **args, unsigned n) {
|
||||
* just set the passed hostname as static/dynamic
|
||||
* hostname. */
|
||||
|
||||
h = strdup(hostname);
|
||||
if (!h)
|
||||
return log_oom();
|
||||
|
||||
hostname_cleanup(h, true);
|
||||
|
||||
if (arg_static && streq(h, hostname))
|
||||
if (arg_static && hostname_is_valid(hostname, true)) {
|
||||
p = "";
|
||||
else {
|
||||
p = hostname;
|
||||
hostname = h;
|
||||
/* maybe get rid of trailing dot */
|
||||
hostname = hostname_cleanup(hostname, false);
|
||||
} else {
|
||||
p = h = strdup(hostname);
|
||||
if (!p)
|
||||
return log_oom();
|
||||
|
||||
hostname_cleanup(hostname, false);
|
||||
}
|
||||
|
||||
r = set_simple_string(bus, "SetPrettyHostname", p);
|
||||
|
Loading…
Reference in New Issue
Block a user