2013-09-03 19:01:17 +00:00
|
|
|
From 0d298cfe215b2e09debb62978eb77d7be4f37e1f Mon Sep 17 00:00:00 2001
|
2013-08-18 10:25:16 +00:00
|
|
|
From: Kevin Wolf <kwolf@redhat.com>
|
|
|
|
Date: Fri, 15 Mar 2013 17:14:24 +0100
|
2013-09-03 19:01:17 +00:00
|
|
|
Subject: [PATCH] qemu-socket: Make socket_optslist public
|
2013-08-18 10:25:16 +00:00
|
|
|
|
|
|
|
Allow other users to create the QemuOpts needed for inet_connect_opts().
|
|
|
|
|
|
|
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
|
Reviewed-by: Eric Blake <eblake@redhat.com>
|
|
|
|
(cherry picked from commit e62be8888a83aa0ab7f50eeb954deb2ec4e7201d)
|
|
|
|
---
|
|
|
|
include/qemu/sockets.h | 2 ++
|
|
|
|
util/qemu-sockets.c | 22 +++++++++++-----------
|
|
|
|
2 files changed, 13 insertions(+), 11 deletions(-)
|
|
|
|
|
|
|
|
diff --git a/include/qemu/sockets.h b/include/qemu/sockets.h
|
|
|
|
index 42ca690..6eed34e 100644
|
|
|
|
--- a/include/qemu/sockets.h
|
|
|
|
+++ b/include/qemu/sockets.h
|
|
|
|
@@ -31,6 +31,8 @@ int inet_aton(const char *cp, struct in_addr *ia);
|
|
|
|
#include "qapi/qmp/qerror.h"
|
|
|
|
#include "char/char.h"
|
|
|
|
|
|
|
|
+extern QemuOptsList socket_optslist;
|
|
|
|
+
|
|
|
|
/* misc helpers */
|
|
|
|
int qemu_socket(int domain, int type, int protocol);
|
|
|
|
int qemu_accept(int s, struct sockaddr *addr, socklen_t *addrlen);
|
|
|
|
diff --git a/util/qemu-sockets.c b/util/qemu-sockets.c
|
|
|
|
index cd54fb4..b32510a 100644
|
|
|
|
--- a/util/qemu-sockets.c
|
|
|
|
+++ b/util/qemu-sockets.c
|
|
|
|
@@ -33,10 +33,10 @@
|
|
|
|
|
|
|
|
static const int on=1, off=0;
|
|
|
|
|
|
|
|
-/* used temporarely until all users are converted to QemuOpts */
|
|
|
|
-static QemuOptsList dummy_opts = {
|
|
|
|
- .name = "dummy",
|
|
|
|
- .head = QTAILQ_HEAD_INITIALIZER(dummy_opts.head),
|
|
|
|
+/* used temporarily until all users are converted to QemuOpts */
|
|
|
|
+QemuOptsList socket_optslist = {
|
|
|
|
+ .name = "socket",
|
|
|
|
+ .head = QTAILQ_HEAD_INITIALIZER(socket_optslist.head),
|
|
|
|
.desc = {
|
|
|
|
{
|
|
|
|
.name = "path",
|
|
|
|
@@ -579,7 +579,7 @@ int inet_listen(const char *str, char *ostr, int olen,
|
|
|
|
|
|
|
|
addr = inet_parse(str, errp);
|
|
|
|
if (addr != NULL) {
|
|
|
|
- opts = qemu_opts_create_nofail(&dummy_opts);
|
|
|
|
+ opts = qemu_opts_create_nofail(&socket_optslist);
|
|
|
|
inet_addr_to_opts(opts, addr);
|
|
|
|
qapi_free_InetSocketAddress(addr);
|
|
|
|
sock = inet_listen_opts(opts, port_offset, errp);
|
|
|
|
@@ -652,7 +652,7 @@ int inet_nonblocking_connect(const char *str,
|
|
|
|
|
|
|
|
addr = inet_parse(str, errp);
|
|
|
|
if (addr != NULL) {
|
|
|
|
- opts = qemu_opts_create_nofail(&dummy_opts);
|
|
|
|
+ opts = qemu_opts_create_nofail(&socket_optslist);
|
|
|
|
inet_addr_to_opts(opts, addr);
|
|
|
|
qapi_free_InetSocketAddress(addr);
|
|
|
|
sock = inet_connect_opts(opts, errp, callback, opaque);
|
|
|
|
@@ -795,7 +795,7 @@ int unix_listen(const char *str, char *ostr, int olen, Error **errp)
|
|
|
|
char *path, *optstr;
|
|
|
|
int sock, len;
|
|
|
|
|
|
|
|
- opts = qemu_opts_create_nofail(&dummy_opts);
|
|
|
|
+ opts = qemu_opts_create_nofail(&socket_optslist);
|
|
|
|
|
|
|
|
optstr = strchr(str, ',');
|
|
|
|
if (optstr) {
|
|
|
|
@@ -823,7 +823,7 @@ int unix_connect(const char *path, Error **errp)
|
|
|
|
QemuOpts *opts;
|
|
|
|
int sock;
|
|
|
|
|
|
|
|
- opts = qemu_opts_create_nofail(&dummy_opts);
|
|
|
|
+ opts = qemu_opts_create_nofail(&socket_optslist);
|
|
|
|
qemu_opt_set(opts, "path", path);
|
|
|
|
sock = unix_connect_opts(opts, errp, NULL, NULL);
|
|
|
|
qemu_opts_del(opts);
|
|
|
|
@@ -840,7 +840,7 @@ int unix_nonblocking_connect(const char *path,
|
|
|
|
|
|
|
|
g_assert(callback != NULL);
|
|
|
|
|
|
|
|
- opts = qemu_opts_create_nofail(&dummy_opts);
|
|
|
|
+ opts = qemu_opts_create_nofail(&socket_optslist);
|
|
|
|
qemu_opt_set(opts, "path", path);
|
|
|
|
sock = unix_connect_opts(opts, errp, callback, opaque);
|
|
|
|
qemu_opts_del(opts);
|
|
|
|
@@ -891,7 +891,7 @@ int socket_connect(SocketAddress *addr, Error **errp,
|
|
|
|
QemuOpts *opts;
|
|
|
|
int fd;
|
|
|
|
|
|
|
|
- opts = qemu_opts_create_nofail(&dummy_opts);
|
|
|
|
+ opts = qemu_opts_create_nofail(&socket_optslist);
|
|
|
|
switch (addr->kind) {
|
|
|
|
case SOCKET_ADDRESS_KIND_INET:
|
|
|
|
inet_addr_to_opts(opts, addr->inet);
|
|
|
|
@@ -923,7 +923,7 @@ int socket_listen(SocketAddress *addr, Error **errp)
|
|
|
|
QemuOpts *opts;
|
|
|
|
int fd;
|
|
|
|
|
|
|
|
- opts = qemu_opts_create_nofail(&dummy_opts);
|
|
|
|
+ opts = qemu_opts_create_nofail(&socket_optslist);
|
|
|
|
switch (addr->kind) {
|
|
|
|
case SOCKET_ADDRESS_KIND_INET:
|
|
|
|
inet_addr_to_opts(opts, addr->inet);
|