conf: Don't generate machine names with a dot

According to the linked BZ, machined expects either valid
hostname or valid FQDN (see systemd commit
v239-3092-gd65652f1f2). While in case of multiple dots, a
trailing one doesn't violate FQDN, it does violate the rule in
case of something simple, like "domain.". But it's safe to remove
it in both cases.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1808499
Fixes: 45464db8ba

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Michal Privoznik 2020-02-28 17:12:41 +01:00
parent 0fdb7385e4
commit 2695191a44
2 changed files with 10 additions and 9 deletions

View File

@ -30927,20 +30927,20 @@ static void
virDomainMachineNameAppendValid(virBufferPtr buf,
const char *name)
{
bool skip_dot = false;
bool skip = true;
for (; *name; name++) {
if (strlen(virBufferCurrentContent(buf)) >= 64)
break;
if (*name == '.') {
if (!skip_dot)
if (*name == '.' || *name == '-') {
if (!skip)
virBufferAddChar(buf, *name);
skip_dot = true;
skip = true;
continue;
}
skip_dot = false;
skip = false;
if (!strchr(HOSTNAME_CHARS, *name))
continue;
@ -30948,8 +30948,8 @@ virDomainMachineNameAppendValid(virBufferPtr buf,
virBufferAddChar(buf, *name);
}
/* trailing dashes are not allowed */
virBufferTrimChars(buf, "-");
/* trailing dashes or dots are not allowed */
virBufferTrimChars(buf, "-.");
}
#undef HOSTNAME_CHARS

View File

@ -736,7 +736,7 @@ mymain(void)
TEST_MACHINE("demo", 1, "qemu-1-demo");
TEST_MACHINE("demo-name", 2, "qemu-2-demo-name");
TEST_MACHINE("demo!name", 3, "qemu-3-demoname");
TEST_MACHINE(".demo", 4, "qemu-4-.demo");
TEST_MACHINE(".demo", 4, "qemu-4-demo");
TEST_MACHINE("bull\U0001f4a9", 5, "qemu-5-bull");
TEST_MACHINE("demo..name", 6, "qemu-6-demo.name");
TEST_MACHINE("12345678901234567890123456789012345678901234567890123456789", 7,
@ -746,7 +746,8 @@ mymain(void)
TEST_MACHINE("kstest-network-device-default-httpks_(c9eed63e-981e-48ec-acdc-56b3f8c5f678)", 100,
"qemu-100-kstest-network-device-default-httpksc9eed63e-981e-48ec");
TEST_MACHINE("kstest-network-device-default-httpks_(c9eed63e-981e-48ec--cdc-56b3f8c5f678)", 10,
"qemu-10-kstest-network-device-default-httpksc9eed63e-981e-48ec");
"qemu-10-kstest-network-device-default-httpksc9eed63e-981e-48ec-c");
TEST_MACHINE("demo.-.test.", 11, "qemu-11-demo.test");
# define TESTS_PM_SUPPORT_HELPER(name, function) \
do { \