aboutsummaryrefslogtreecommitdiff
path: root/util
diff options
context:
space:
mode:
Diffstat (limited to 'util')
-rw-r--r--util/qemu-sockets.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
index 6dc4613855..8bd8bb64eb 100644
--- a/util/qemu-sockets.c
+++ b/util/qemu-sockets.c
@@ -1044,9 +1044,19 @@ fail:
static int socket_get_fd(const char *fdstr, Error **errp)
{
- int fd = monitor_get_fd(cur_mon, fdstr, errp);
- if (fd < 0) {
- return -1;
+ int fd;
+ if (cur_mon) {
+ fd = monitor_get_fd(cur_mon, fdstr, errp);
+ if (fd < 0) {
+ return -1;
+ }
+ } else {
+ if (qemu_strtoi(fdstr, NULL, 10, &fd) < 0) {
+ error_setg_errno(errp, errno,
+ "Unable to parse FD number %s",
+ fdstr);
+ return -1;
+ }
}
if (!fd_is_socket(fd)) {
error_setg(errp, "File descriptor '%s' is not a socket", fdstr);