char *virSystemdMakeScopeName(const char *name, const char *drivername) { virBuffer buf = VIR_BUFFER_INITIALIZER; virBufferAddLit(&buf, "machine-"); virSystemdEscapeName(&buf, drivername); virBufferAddLit(&buf, "\\x2d"); virSystemdEscapeName(&buf, name); virBufferAddLit(&buf, ".scope"); if (virBufferCheckError(&buf) < 0) return NULL; return virBufferContentAndReset(&buf); }
char *virSystemdMakeMachineName(const char *name, const char *drivername, bool privileged) { char *machinename = NULL; char *username = NULL; virBuffer buf = VIR_BUFFER_INITIALIZER; if (privileged) { virBufferAsprintf(&buf, "%s-", drivername); } else { if (!(username = virGetUserName(geteuid()))) goto cleanup; virBufferAsprintf(&buf, "%s-%s-", username, drivername); } virSystemdEscapeName(&buf, name, false); machinename = virBufferContentAndReset(&buf); cleanup: VIR_FREE(username); return machinename; }
char *virSystemdMakeSliceName(const char *partition) { virBuffer buf = VIR_BUFFER_INITIALIZER; if (*partition == '/') partition++; virSystemdEscapeName(&buf, partition); virBufferAddLit(&buf, ".slice"); if (virBufferCheckError(&buf) < 0) return NULL; return virBufferContentAndReset(&buf); }