virPidFileForceCleanupPath(proc->pidfile);
- proc->config.type = VIR_DOMAIN_CHR_TYPE_UNIX;
- proc->config.data.nix.path = proc->monpath;
- proc->config.data.nix.listen = false;
-
return proc;
error:
static int
qemuProcessQMPLaunch(qemuProcessQMPPtr proc)
{
- virDomainXMLOptionPtr xmlopt = NULL;
const char *machine;
int status = 0;
int ret = -1;
goto cleanup;
}
- if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL, NULL, NULL)) ||
- !(proc->vm = virDomainObjNew(xmlopt)))
- goto cleanup;
-
- proc->vm->pid = proc->pid;
-
- if (!(proc->mon = qemuMonitorOpen(proc->vm, &proc->config, true, true,
- 0, &callbacks, NULL)))
- goto cleanup;
-
- virObjectLock(proc->mon);
-
ret = 0;
cleanup:
- if (!proc->mon)
- qemuProcessQMPStop(proc);
- virObjectUnref(xmlopt);
-
return ret;
}
static int
qemuProcessQMPConnectMonitor(qemuProcessQMPPtr proc)
{
+ virDomainXMLOptionPtr xmlopt = NULL;
int ret = -1;
VIR_DEBUG("proc=%p, emulator=%s, proc->pid=%lld",
proc, proc->binary, (long long)proc->pid);
+ proc->config.type = VIR_DOMAIN_CHR_TYPE_UNIX;
+ proc->config.data.nix.path = proc->monpath;
+ proc->config.data.nix.listen = false;
+
+ if (!(xmlopt = virDomainXMLOptionNew(NULL, NULL, NULL, NULL, NULL)) ||
+ !(proc->vm = virDomainObjNew(xmlopt)))
+ goto cleanup;
+
+ proc->vm->pid = proc->pid;
+
+ if (!(proc->mon = qemuMonitorOpen(proc->vm, &proc->config, true, true,
+ 0, &callbacks, NULL)))
+ goto cleanup;
+
+ virObjectLock(proc->mon);
+
ret = 0;
+ cleanup:
+ virObjectUnref(xmlopt);
return ret;
}