From e0417a8a4da33c03264447cb3ebedd302e243a4f Mon Sep 17 00:00:00 2001 From: Xavier Del Campo Romero Date: Mon, 9 Oct 2023 22:35:58 +0200 Subject: WIP yield reset --- libdino/src/service/connection_manager.vala | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) (limited to 'libdino/src') diff --git a/libdino/src/service/connection_manager.vala b/libdino/src/service/connection_manager.vala index d26e69d1..b01f1ecd 100644 --- a/libdino/src/service/connection_manager.vala +++ b/libdino/src/service/connection_manager.vala @@ -228,7 +228,7 @@ public class ConnectionManager : Object { debug("[%s %p] Connection error: %s", account.bare_jid.to_string(), stream, e.message); change_connection_state(account, ConnectionState.DISCONNECTED); - connections[account].reset(); + yield connections[account].reset(); StreamError.Flag? flag = stream.get_flag(StreamError.Flag.IDENTITY); if (flag != null) { @@ -273,8 +273,10 @@ public class ConnectionManager : Object { debug("[%s %p] Ping timeouted. Reconnecting", account.bare_jid.to_string(), stream); change_connection_state(account, ConnectionState.DISCONNECTED); - connections[account].reset(); - connect_stream.begin(account); + connections[account].reset.begin((_, res) => { + connections[account].reset.end(res); + connect_stream.begin(account); + }); return false; }); } @@ -306,8 +308,10 @@ public class ConnectionManager : Object { else { change_connection_state(account, ConnectionState.DISCONNECTED); - connections[account].reset(); - connect_stream.begin(account); + connections[account].reset.begin((_, res) => { + connections[account].reset.end(res); + connect_stream.begin(account); + }); } } -- cgit v1.2.3