]> git.proxmox.com Git - mirror_qemu.git/commitdiff
Merge remote-tracking branch 'qmp/queue/qmp' into staging
authorAnthony Liguori <aliguori@us.ibm.com>
Mon, 31 Oct 2011 16:02:29 +0000 (11:02 -0500)
committerAnthony Liguori <aliguori@us.ibm.com>
Mon, 31 Oct 2011 16:02:29 +0000 (11:02 -0500)
Conflicts:
ui/spice-core.c

1  2 
hmp-commands.hx
migration.c
monitor.c
qmp-commands.hx
ui/spice-core.c

diff --cc hmp-commands.hx
Simple merge
diff --cc migration.c
Simple merge
diff --cc monitor.c
Simple merge
diff --cc qmp-commands.hx
Simple merge
diff --cc ui/spice-core.c
index 6d3dab6960f93ebd7167e269e81eed07735b4ce6,f556849ef9fb387abe080c056e70c556efc93c13..5639c6f5314a964dd9b0400e072a48e23cb7dfb9
@@@ -383,73 -336,59 +368,59 @@@ static const char *wan_compression_name
  
  /* functions for the rest of qemu */
  
- static void info_spice_iter(QObject *obj, void *opaque)
+ static SpiceChannelList *qmp_query_spice_channels(void)
  {
-     QDict *client;
-     Monitor *mon = opaque;
-     client = qobject_to_qdict(obj);
-     monitor_printf(mon, "Channel:\n");
-     monitor_printf(mon, "     address: %s:%s%s\n",
-                    qdict_get_str(client, "host"),
-                    qdict_get_str(client, "port"),
-                    qdict_get_bool(client, "tls") ? " [tls]" : "");
-     monitor_printf(mon, "     session: %" PRId64 "\n",
-                    qdict_get_int(client, "connection-id"));
-     monitor_printf(mon, "     channel: %d:%d\n",
-                    (int)qdict_get_int(client, "channel-type"),
-                    (int)qdict_get_int(client, "channel-id"));
- }
+     SpiceChannelList *cur_item = NULL, *head = NULL;
+     ChannelList *item;
  
- void do_info_spice_print(Monitor *mon, const QObject *data)
- {
-     QDict *server;
-     QList *channels;
-     const char *host;
-     int port;
-     server = qobject_to_qdict(data);
-     if (qdict_get_bool(server, "enabled") == 0) {
-         monitor_printf(mon, "Server: disabled\n");
-         return;
+     QTAILQ_FOREACH(item, &channel_list, link) {
+         SpiceChannelList *chan;
+         char host[NI_MAXHOST], port[NI_MAXSERV];
+         chan = g_malloc0(sizeof(*chan));
+         chan->value = g_malloc0(sizeof(*chan->value));
+         getnameinfo(&item->info->paddr, item->info->plen,
+                     host, sizeof(host), port, sizeof(port),
+                     NI_NUMERICHOST | NI_NUMERICSERV);
+         chan->value->host = g_strdup(host);
+         chan->value->port = g_strdup(port);
+         chan->value->family = g_strdup(inet_strfamily(item->info->paddr.sa_family));
+         chan->value->connection_id = item->info->connection_id;
+         chan->value->channel_type = item->info->type;
+         chan->value->channel_id = item->info->id;
+         chan->value->tls = item->info->flags & SPICE_CHANNEL_EVENT_FLAG_TLS;
+        /* XXX: waiting for the qapi to support GSList */
+         if (!cur_item) {
+             head = cur_item = chan;
+         } else {
+             cur_item->next = chan;
+             cur_item = chan;
+         }
      }
  
-     monitor_printf(mon, "Server:\n");
-     host = qdict_get_str(server, "host");
-     port = qdict_get_try_int(server, "port", -1);
-     if (port != -1) {
-         monitor_printf(mon, "     address: %s:%d\n", host, port);
-     }
-     port = qdict_get_try_int(server, "tls-port", -1);
-     if (port != -1) {
-         monitor_printf(mon, "     address: %s:%d [tls]\n", host, port);
-     }
-     monitor_printf(mon, "        auth: %s\n", qdict_get_str(server, "auth"));
-     monitor_printf(mon, "    compiled: %s\n",
-                    qdict_get_str(server, "compiled-version"));
-     channels = qdict_get_qlist(server, "channels");
-     if (qlist_empty(channels)) {
-         monitor_printf(mon, "Channels: none\n");
-     } else {
-         qlist_iter(channels, info_spice_iter, mon);
-     }
+     return head;
  }
  
void do_info_spice(Monitor *mon, QObject **ret_data)
SpiceInfo *qmp_query_spice(Error **errp)
  {
      QemuOpts *opts = QTAILQ_FIRST(&qemu_spice_opts.head);
-     QDict *server;
-     QList *clist;
-     const char *addr;
      int port, tls_port;
+     const char *addr;
+     SpiceInfo *info;
      char version_string[20]; /* 12 = |255.255.255\0| is the max */
  
 -    if (!spice_server) {
+     info = g_malloc0(sizeof(*info));
-         *ret_data = qobject_from_jsonf("{ 'enabled': false }");
-         return;
 +    if (!spice_server || !opts) {
+         info->enabled = false;
+         return info;
      }
  
+     info->enabled = true;
      addr = qemu_opt_get(opts, "addr");
      port = qemu_opt_get_number(opts, "port", 0);
      tls_port = qemu_opt_get_number(opts, "tls-port", 0);