@@ -48,28 +48,37 @@ static char *SocketAddress_to_str(SocketAddress *addr)
}
}
-static char *
-migrate_get_socket_address(QTestState *who, const char *parameter)
+static SocketAddress *migrate_get_socket_address(QTestState *who)
{
QDict *rsp;
- char *result;
SocketAddressList *addrs;
+ SocketAddress *addr;
Visitor *iv = NULL;
QObject *object;
rsp = migrate_query(who);
- object = qdict_get(rsp, parameter);
+ object = qdict_get(rsp, "socket-address");
iv = qobject_input_visitor_new(object);
visit_type_SocketAddressList(iv, NULL, &addrs, &error_abort);
+ addr = addrs->value;
visit_free(iv);
- /* we are only using a single address */
- result = SocketAddress_to_str(addrs->value);
-
- qapi_free_SocketAddressList(addrs);
qobject_unref(rsp);
- return result;
+ return addr;
+}
+
+static char *
+migrate_get_connect_uri(QTestState *who)
+{
+ SocketAddress *addrs;
+ char *connect_uri;
+
+ addrs = migrate_get_socket_address(who);
+ connect_uri = SocketAddress_to_str(addrs);
+
+ qapi_free_SocketAddress(addrs);
+ return connect_uri;
}
bool migrate_watch_for_events(QTestState *who, const char *name,
@@ -129,7 +138,7 @@ void migrate_qmp(QTestState *who, QTestState *to, const char *uri,
g_assert(!qdict_haskey(args, "uri"));
if (!uri) {
- connect_uri = migrate_get_socket_address(to, "socket-address");
+ connect_uri = migrate_get_connect_uri(to);
}
qdict_put_str(args, "uri", uri ? uri : connect_uri);