aboutsummaryrefslogtreecommitdiff
path: root/libdino/src
diff options
context:
space:
mode:
authorXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-09 22:35:58 +0200
committerXavier Del Campo Romero <xavi.dcr@tutanota.com>2023-10-09 22:35:58 +0200
commite0417a8a4da33c03264447cb3ebedd302e243a4f (patch)
tree8604788958104887b8cfee8279160b94c27fd7aa /libdino/src
parent946d113aad1952f5d92dcc8605e0022f8d38c534 (diff)
downloaddino-e0417a8a4da33c03264447cb3ebedd302e243a4f.tar.gz
WIP yield reset
Diffstat (limited to 'libdino/src')
-rw-r--r--libdino/src/service/connection_manager.vala14
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);
+ });
}
}