::
- qemu-monitor-command domain { [--hmp] | [--pretty] [--return-value] } command...
+ qemu-monitor-command domain { [--hmp] | [--pretty] [--return-value] }
+ [--pass-fds N,M,...] command...
Send an arbitrary monitor command *command* to domain *domain* through the
QEMU monitor. The results of the command will be printed on stdout.
If *--hmp* is passed, the command is considered to be a human monitor command
and libvirt will automatically convert it into QMP and convert the result back.
+If *--pass-fds* is specified, the argument is a comma separated list
+of open file descriptors which should be passed on to qemu along with the
+command.
qemu-agent-command
------------------
.type = VSH_OT_BOOL,
.help = N_("extract the value of the 'return' key from the returned string")
},
+ {.name = "pass-fds",
+ .type = VSH_OT_STRING,
+ .completer = virshCompleteEmpty,
+ .help = N_("pass file descriptors N,M,... along with the command")
+ },
{.name = "cmd",
.type = VSH_OT_ARGV,
.flags = VSH_OFLAG_REQ,
bool returnval = vshCommandOptBool(cmd, "return-value");
virJSONValue *formatjson;
g_autofree char *jsonstr = NULL;
+ g_autofree int *fds = NULL;
+ size_t nfds = 0;
VSH_EXCLUSIVE_OPTIONS("hmp", "pretty");
VSH_EXCLUSIVE_OPTIONS("hmp", "return-value");
return NULL;
}
- if (virDomainQemuMonitorCommand(dom, monitor_cmd, &result, flags) < 0)
+ if (virshFetchPassFdsList(ctl, cmd, &nfds, &fds) < 0)
return false;
+ if (fds) {
+ if (virDomainQemuMonitorCommandWithFiles(dom, monitor_cmd, nfds, fds,
+ NULL, NULL,
+ &result, flags) < 0)
+ return false;
+ } else {
+ if (virDomainQemuMonitorCommand(dom, monitor_cmd, &result, flags) < 0)
+ return false;
+ }
+
if (returnval || pretty) {
resultjson = virJSONValueFromString(result);