aboutsummaryrefslogtreecommitdiff
path: root/xmpp-vala/src/core/stream_connect.vala
diff options
context:
space:
mode:
authorfiaxh <git@lightrise.org>2024-08-19 12:17:23 +0200
committerfiaxh <git@lightrise.org>2024-08-19 12:28:45 +0200
commitdc57561dcffda62d01618c72e0bbf5c5a45c2114 (patch)
treef2336f1d6bef1b1a7b37577d444c4141a51fbc39 /xmpp-vala/src/core/stream_connect.vala
parent88376cd6f75d5057caa6582d0a82fc76bb7b388f (diff)
downloaddino-dc57561dcffda62d01618c72e0bbf5c5a45c2114.tar.gz
dino-dc57561dcffda62d01618c72e0bbf5c5a45c2114.zip
Add cancellable to stream connect
Diffstat (limited to 'xmpp-vala/src/core/stream_connect.vala')
-rw-r--r--xmpp-vala/src/core/stream_connect.vala8
1 files changed, 8 insertions, 0 deletions
diff --git a/xmpp-vala/src/core/stream_connect.vala b/xmpp-vala/src/core/stream_connect.vala
index a4c5b82e..17d47f38 100644
--- a/xmpp-vala/src/core/stream_connect.vala
+++ b/xmpp-vala/src/core/stream_connect.vala
@@ -69,8 +69,16 @@ namespace Xmpp {
stream.add_module(module);
}
+ uint connection_timeout_id = Timeout.add_seconds(30, () => {
+ warning("Connection attempt timed out");
+ stream.disconnect();
+ return Source.REMOVE;
+ });
+
yield stream.connect();
+ Source.remove(connection_timeout_id);
+
return new XmppStreamResult() { stream=stream };
} catch (IOError e) {
warning("Could not establish XMPP session with %s:%i: %s", target.host, target.port, e.message);