summaryrefslogtreecommitdiff
path: root/src/core/servers-reconnect.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/servers-reconnect.c')
-rw-r--r--src/core/servers-reconnect.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/core/servers-reconnect.c b/src/core/servers-reconnect.c
index 1727704c..5f609cf5 100644
--- a/src/core/servers-reconnect.c
+++ b/src/core/servers-reconnect.c
@@ -111,6 +111,21 @@ static int server_reconnect_timeout(void)
}
}
+ for (tmp = lookup_servers; tmp != NULL; tmp = next) {
+ SERVER_REC *server = tmp->data;
+
+ next = tmp->next;
+ if (server->connect_time + connect_timeout < now &&
+ connect_timeout > 0) {
+ if (server->connect_tag != -1) {
+ g_source_remove(server->connect_tag);
+ server->connect_tag = -1;
+ }
+ server->connection_lost = TRUE;
+ server_connect_failed(server, "Timeout");
+ }
+ }
+
/* If server_connect() removes the next reconnection in queue,
we're screwed. I don't think this should happen anymore, but just
to be sure we don't crash, do this safely. */