]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: Don't generate machine names with a dot
authorMichal Privoznik <mprivozn@redhat.com>
Fri, 28 Feb 2020 16:12:41 +0000 (17:12 +0100)
committerMichal Privoznik <mprivozn@redhat.com>
Fri, 13 Mar 2020 10:59:55 +0000 (11:59 +0100)
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: 45464db8ba502764cf37ec9335770248bdb3d9a8
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/conf/domain_conf.c
tests/virsystemdtest.c

index d2d97daf808060051cdde7557b903065254f9aa6..f8a8d133baa3655c095e6cfe248e83da4aea83cd 100644 (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
index 1e362981890e49ff37e69e16b43289335f9b8530..fa0980c845e84fc39d2e4cb9af8021a9da9b9bdc 100644 (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 { \