diff options
| author | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-09 22:35:58 +0200 |
|---|---|---|
| committer | Xavier Del Campo Romero <xavi.dcr@tutanota.com> | 2023-10-09 22:35:58 +0200 |
| commit | e0417a8a4da33c03264447cb3ebedd302e243a4f (patch) | |
| tree | 8604788958104887b8cfee8279160b94c27fd7aa /libdino/src | |
| parent | 946d113aad1952f5d92dcc8605e0022f8d38c534 (diff) | |
| download | dino-e0417a8a4da33c03264447cb3ebedd302e243a4f.tar.gz | |
WIP yield reset
Diffstat (limited to 'libdino/src')
| -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); + }); } } |
