VIR_LOG_INIT("util.systemd");
-/**
- * virSystemdEscapeName:
- *
- * This function escapes various characters in @name and appends that
- * escaped string to @buf, in order to comply with the requirements
- * from systemd/machined. Parameter @full_escape decides whether to
- * also escape dot as a first character and '-'.
- */
static void virSystemdEscapeName(virBufferPtr buf,
- const char *name,
- bool full_escape)
+ const char *name)
{
static const char hextable[16] = "0123456789abcdef";
"ABCDEFGHIJKLMNOPQRSTUVWXYZ" \
":-_.\\"
- if (full_escape && *name == '.') {
+ if (*name == '.') {
ESCAPE(*name);
name++;
}
while (*name) {
if (*name == '/')
virBufferAddChar(buf, '-');
- else if ((full_escape && *name == '-') ||
+ else if (*name == '-' ||
*name == '\\' ||
!strchr(VALID_CHARS, *name))
ESCAPE(*name);
virBuffer buf = VIR_BUFFER_INITIALIZER;
virBufferAddLit(&buf, "machine-");
- virSystemdEscapeName(&buf, drivername, true);
+ virSystemdEscapeName(&buf, drivername);
virBufferAddLit(&buf, "\\x2d");
- virSystemdEscapeName(&buf, name, true);
+ virSystemdEscapeName(&buf, name);
virBufferAddLit(&buf, ".scope");
if (virBufferCheckError(&buf) < 0)
if (*partition == '/')
partition++;
- virSystemdEscapeName(&buf, partition, true);
+ virSystemdEscapeName(&buf, partition);
virBufferAddLit(&buf, ".slice");
if (virBufferCheckError(&buf) < 0)
virBufferAsprintf(&buf, "%s-%s-", username, drivername);
}
- virSystemdEscapeName(&buf, name, false);
+ virSystemdEscapeName(&buf, name);
machinename = virBufferContentAndReset(&buf);
cleanup:
} while (0)
TEST_MACHINE("demo", "qemu-demo");
- TEST_MACHINE("demo-name", "qemu-demo-name");
+ TEST_MACHINE("demo-name", "qemu-demo\\x2dname");
TEST_MACHINE("demo!name", "qemu-demo\\x21name");
- TEST_MACHINE(".demo", "qemu-.demo");
+ TEST_MACHINE(".demo", "qemu-\\x2edemo");
TEST_MACHINE("bull\U0001f4a9", "qemu-bull\\xf0\\x9f\\x92\\xa9");
# define TESTS_PM_SUPPORT_HELPER(name, function) \