}
static virJSONValue *
-qemuMonitorJSONAttachCharDevCommand(const char *chrID,
- const virDomainChrSourceDef *chr)
+qemuMonitorJSONAttachCharDevGetProps(const char *chrID,
+ const virDomainChrSourceDef *chr)
{
+ g_autoptr(virJSONValue) props = NULL;
g_autoptr(virJSONValue) backend = virJSONValueNewObject();
g_autoptr(virJSONValue) data = virJSONValueNewObject();
g_autoptr(virJSONValue) addr = NULL;
virJSONValueObjectAppend(backend, "data", &data) < 0)
return NULL;
- return qemuMonitorJSONMakeCommand("chardev-add",
- "s:id", chrID,
- "a:backend", &backend,
- NULL);
+ if (virJSONValueObjectAdd(&props,
+ "s:id", chrID,
+ "a:backend", &backend,
+ NULL) < 0)
+ return NULL;
+
+ return g_steal_pointer(&props);
}
{
g_autoptr(virJSONValue) cmd = NULL;
g_autoptr(virJSONValue) reply = NULL;
+ g_autoptr(virJSONValue) props = NULL;
+
+ if (!(props = qemuMonitorJSONAttachCharDevGetProps(chrID, chr)))
+ return -1;
- if (!(cmd = qemuMonitorJSONAttachCharDevCommand(chrID, chr)))
+ if (!(cmd = qemuMonitorJSONMakeCommandInternal("chardev-add", &props)))
return -1;
if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)