mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-03 15:53:54 -06:00
QAPI patches for 2017-05-04
-----BEGIN PGP SIGNATURE----- iQIcBAABAgAGBQJZEWy8AAoJEDhwtADrkYZTLAUP+wYCBQs3weLNpLWa37qpACTi 1+MJ5T6xwpcdrGhSVKUoPXe4EigZpsKPcxfD0PxqFMqNjGfwvN6iERKMaQOD16kE Lgs3rE9Ls7SumWd9MEB838BbMBcZjOixyJCqIXc4bAT7kDGJ9S7wrSZJhbRmCaAn dNR+VHOZd0YWWlPiGhhy3oOtP7aClwH4AORdFRdaxv7DyvLB4CklRBmIumvi3HBv +kzIjlDBIkW9STsF/O/7k5NHWHv9SfSJ4Wz4Z1ROZIVhEic8TQafksRh0+YvZ2Mh smAhixXflibLF61ExVT7WbMwmasZ4chLzljq5z1K4nQiorcspmZ7x9Zit84TVaXC kBFOHWYb7w5KnnN9VwuQqJ8GAUERhcZJgnA93nlRVMtt46pczqN9lgPNvhAi9/uo jOaYpNEkYZvZB3m4PvTyB9771gL/i3HzfqN5jAdCR/+9l8wHC7zNtsWQ9gWm6vl5 GBdvIjrX0v71scxJXiK93mj02gBROCRb977SU5DWC9SmrzK11a93XP2E8MXBSdJz eFLwY+rTPorbxjMco1PPkTWztoFXfj1tYzk8E6GVh8nOn6yijaNn+vaUdIOJYwox RbxWhvURy/nuoXnhPGFO5CkoxdSLMbOGWoq9OVz4mPITQH2jlOSDWpzuIoRCkNa5 kPKw8cXlZQeztYHFq3Wt =KJss -----END PGP SIGNATURE----- Merge remote-tracking branch 'armbru/tags/pull-qapi-2017-05-04-v3' into staging QAPI patches for 2017-05-04 # gpg: Signature made Tue 09 May 2017 03:16:12 AM EDT # gpg: using RSA key 0x3870B400EB918653 # gpg: Good signature from "Markus Armbruster <armbru@redhat.com>" # gpg: aka "Markus Armbruster <armbru@pond.sub.org>" # Primary key fingerprint: 354B C8B3 D7EB 2A6B 6867 4E5F 3870 B400 EB91 8653 * armbru/tags/pull-qapi-2017-05-04-v3: (28 commits) qmp-shell: improve help qmp-shell: don't show version greeting if unavailable qmp-shell: Cope with query-commands error qmp-shell: add -N option to skip negotiate qmp-shell: add persistent command history qobject-input-visitor: Catch misuse of end_struct vs. end_list qapi: Document intended use of @name within alternate visits qobject-input-visitor: Document full_name_nth() qmp: Improve QMP dispatch error messages sockets: Delete unused helper socket_address_crumple() sockets: Limit SocketAddressLegacy to external interfaces sockets: Rename SocketAddressFlat to SocketAddress sockets: Rename SocketAddress to SocketAddressLegacy qapi: New QAPI_CLONE_MEMBERS() sockets: Prepare inet_parse() for flattened SocketAddress sockets: Prepare vsock_parse() for flattened SocketAddress test-qga: Actually test 0xff sync bytes fdc-test: Avoid deprecated 'change' command QemuOpts: Simplify qemu_opts_to_qdict() block: Simplify bdrv_append_temp_snapshot() logic ... Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
commit
76d20ea0f1
71 changed files with 805 additions and 668 deletions
|
@ -360,26 +360,26 @@ static char *SocketAddress_to_str(const char *prefix, SocketAddress *addr,
|
|||
bool is_listen, bool is_telnet)
|
||||
{
|
||||
switch (addr->type) {
|
||||
case SOCKET_ADDRESS_KIND_INET:
|
||||
case SOCKET_ADDRESS_TYPE_INET:
|
||||
return g_strdup_printf("%s%s:%s:%s%s", prefix,
|
||||
is_telnet ? "telnet" : "tcp",
|
||||
addr->u.inet.data->host,
|
||||
addr->u.inet.data->port,
|
||||
addr->u.inet.host,
|
||||
addr->u.inet.port,
|
||||
is_listen ? ",server" : "");
|
||||
break;
|
||||
case SOCKET_ADDRESS_KIND_UNIX:
|
||||
case SOCKET_ADDRESS_TYPE_UNIX:
|
||||
return g_strdup_printf("%sunix:%s%s", prefix,
|
||||
addr->u.q_unix.data->path,
|
||||
addr->u.q_unix.path,
|
||||
is_listen ? ",server" : "");
|
||||
break;
|
||||
case SOCKET_ADDRESS_KIND_FD:
|
||||
return g_strdup_printf("%sfd:%s%s", prefix, addr->u.fd.data->str,
|
||||
case SOCKET_ADDRESS_TYPE_FD:
|
||||
return g_strdup_printf("%sfd:%s%s", prefix, addr->u.fd.str,
|
||||
is_listen ? ",server" : "");
|
||||
break;
|
||||
case SOCKET_ADDRESS_KIND_VSOCK:
|
||||
case SOCKET_ADDRESS_TYPE_VSOCK:
|
||||
return g_strdup_printf("%svsock:%s:%s", prefix,
|
||||
addr->u.vsock.data->cid,
|
||||
addr->u.vsock.data->port);
|
||||
addr->u.vsock.cid,
|
||||
addr->u.vsock.port);
|
||||
default:
|
||||
abort();
|
||||
}
|
||||
|
@ -648,7 +648,7 @@ static void tcp_chr_tls_init(Chardev *chr)
|
|||
} else {
|
||||
tioc = qio_channel_tls_new_client(
|
||||
s->ioc, s->tls_creds,
|
||||
s->addr->u.inet.data->host,
|
||||
s->addr->u.inet.host,
|
||||
&err);
|
||||
}
|
||||
if (tioc == NULL) {
|
||||
|
@ -859,7 +859,6 @@ static void qmp_chardev_open_socket(Chardev *chr,
|
|||
{
|
||||
SocketChardev *s = SOCKET_CHARDEV(chr);
|
||||
ChardevSocket *sock = backend->u.socket.data;
|
||||
SocketAddress *addr = sock->addr;
|
||||
bool do_nodelay = sock->has_nodelay ? sock->nodelay : false;
|
||||
bool is_listen = sock->has_server ? sock->server : true;
|
||||
bool is_telnet = sock->has_telnet ? sock->telnet : false;
|
||||
|
@ -867,6 +866,7 @@ static void qmp_chardev_open_socket(Chardev *chr,
|
|||
bool is_waitconnect = sock->has_wait ? sock->wait : false;
|
||||
int64_t reconnect = sock->has_reconnect ? sock->reconnect : 0;
|
||||
QIOChannelSocket *sioc = NULL;
|
||||
SocketAddress *addr;
|
||||
|
||||
s->is_listen = is_listen;
|
||||
s->is_telnet = is_telnet;
|
||||
|
@ -905,11 +905,11 @@ static void qmp_chardev_open_socket(Chardev *chr,
|
|||
}
|
||||
}
|
||||
|
||||
s->addr = QAPI_CLONE(SocketAddress, sock->addr);
|
||||
s->addr = addr = socket_address_flatten(sock->addr);
|
||||
|
||||
qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_RECONNECTABLE);
|
||||
/* TODO SOCKET_ADDRESS_FD where fd has AF_UNIX */
|
||||
if (addr->type == SOCKET_ADDRESS_KIND_UNIX) {
|
||||
if (addr->type == SOCKET_ADDRESS_TYPE_UNIX) {
|
||||
qemu_chr_set_feature(chr, QEMU_CHAR_FEATURE_FD_PASS);
|
||||
}
|
||||
|
||||
|
@ -985,7 +985,7 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
|
|||
const char *host = qemu_opt_get(opts, "host");
|
||||
const char *port = qemu_opt_get(opts, "port");
|
||||
const char *tls_creds = qemu_opt_get(opts, "tls-creds");
|
||||
SocketAddress *addr;
|
||||
SocketAddressLegacy *addr;
|
||||
ChardevSocket *sock;
|
||||
|
||||
backend->type = CHARDEV_BACKEND_KIND_SOCKET;
|
||||
|
@ -1022,14 +1022,14 @@ static void qemu_chr_parse_socket(QemuOpts *opts, ChardevBackend *backend,
|
|||
sock->reconnect = reconnect;
|
||||
sock->tls_creds = g_strdup(tls_creds);
|
||||
|
||||
addr = g_new0(SocketAddress, 1);
|
||||
addr = g_new0(SocketAddressLegacy, 1);
|
||||
if (path) {
|
||||
UnixSocketAddress *q_unix;
|
||||
addr->type = SOCKET_ADDRESS_KIND_UNIX;
|
||||
addr->type = SOCKET_ADDRESS_LEGACY_KIND_UNIX;
|
||||
q_unix = addr->u.q_unix.data = g_new0(UnixSocketAddress, 1);
|
||||
q_unix->path = g_strdup(path);
|
||||
} else {
|
||||
addr->type = SOCKET_ADDRESS_KIND_INET;
|
||||
addr->type = SOCKET_ADDRESS_LEGACY_KIND_INET;
|
||||
addr->u.inet.data = g_new(InetSocketAddress, 1);
|
||||
*addr->u.inet.data = (InetSocketAddress) {
|
||||
.host = g_strdup(host),
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue