return;
virDomainDeviceInfoClear(&def->info);
- VIR_FREE(def->server.path);
+ virDomainChrSourceDefClear(&def->server.chr);
VIR_FREE(def->name);
VIR_FREE(def);
}
if ((server = virXPathNode("./server[1]", ctxt))) {
def->server.enabled = true;
+ def->server.chr.type = VIR_DOMAIN_CHR_TYPE_UNIX;
+ def->server.chr.data.nix.listen = false;
if ((tmp = virXMLPropString(server, "path")))
- def->server.path = virFileSanitizePath(tmp);
+ def->server.chr.data.nix.path = virFileSanitizePath(tmp);
VIR_FREE(tmp);
}
if (def->server.enabled) {
virBufferAddLit(buf, "<server");
- virBufferEscapeString(buf, " path='%s'", def->server.path);
+ virBufferEscapeString(buf, " path='%s'", def->server.chr.data.nix.path);
virBufferAddLit(buf, "/>\n");
}
virQEMUCapsPtr qemuCaps)
{
char *devstr = NULL;
- virDomainChrSourceDef source = {
- .type = VIR_DOMAIN_CHR_TYPE_UNIX,
- .data.nix = {
- .path = shmem->server.path,
- .listen = false,
- }
- };
- if (!shmem->server.path &&
- virAsprintf(&source.data.nix.path,
+ if (!shmem->server.chr.data.nix.path &&
+ virAsprintf(&shmem->server.chr.data.nix.path,
"/var/lib/libvirt/shmem-%s-sock",
shmem->name) < 0)
return NULL;
- devstr = qemuBuildChrChardevStr(&source, shmem->info.alias, qemuCaps);
-
- if (!shmem->server.path)
- VIR_FREE(source.data.nix.path);
+ devstr = qemuBuildChrChardevStr(&shmem->server.chr, shmem->info.alias, qemuCaps);
return devstr;
}