@@ -1492,6 +1492,13 @@ char_socket_get_connected(Object *obj, Error **errp)
return s->state == TCP_CHARDEV_STATE_CONNECTED;
}
+static bool char_socket_get_reconnecting(Object *obj, Error **errp)
+{
+ SocketChardev *s = SOCKET_CHARDEV(obj);
+
+ return s->reconnect_time > 0;
+}
+
static int tcp_chr_reconnect_time(Chardev *chr, int secs)
{
SocketChardev *s = SOCKET_CHARDEV(chr);
@@ -1528,6 +1535,10 @@ static void char_socket_class_init(ObjectClass *oc, void *data)
object_class_property_add_bool(oc, "connected", char_socket_get_connected,
NULL, &error_abort);
+
+ object_class_property_add_bool(oc, "reconnecting",
+ char_socket_get_reconnecting,
+ NULL, &error_abort);
}
static const TypeInfo char_socket_type_info = {
This is used by the VM introspection object to check if the connection will be reestablished in case it disconnects from some reason. The closing of the socket is used by any of the three parties involved, KVM, the introspection tool and QEMU (eg. on force-reset), to signal the other parties that the session is over. As such, it is very important that the socket will reconnect. CC: "Marc-André Lureau" <marcandre.lureau@redhat.com> CC: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Adalbert Lazăr <alazar@bitdefender.com> --- chardev/char-socket.c | 11 +++++++++++ 1 file changed, 11 insertions(+)