diff options
| -rw-r--r-- | libdino/src/service/connection_manager.vala | 14 |
1 files changed, 9 insertions, 5 deletions
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); + }); } } |
