Extend autoping timer on each stanza we receive.

Sometimes the server is too busy sending other stanzas or our connection is
saturated because of something else, so the pong arrives too late.
Prevent the autoping disconnect event by extending the timeout
each time a stanza is received.

Signed-off-by: Steffen Jaeckel <jaeckel-floss@eyet-services.de>
This commit is contained in:
Steffen Jaeckel
2023-05-22 16:58:57 +02:00
parent 0de0594c5a
commit e668c4f7df
4 changed files with 12 additions and 2 deletions

View File

@@ -176,8 +176,7 @@ static int
_iq_handler(xmpp_conn_t* const conn, xmpp_stanza_t* const stanza, void* const userdata)
{
log_debug("iq stanza handler fired");
iq_autoping_timer_cancel(); // reset the autoping timer
autoping_timer_extend();
char* text;
size_t text_size;
@@ -1391,6 +1390,13 @@ _autoping_timed_send(xmpp_conn_t* const conn, void* const userdata)
return 1;
}
void
autoping_timer_extend(void)
{
if (autoping_time)
g_timer_start(autoping_time);
}
static int
_auto_pong_id_handler(xmpp_stanza_t* const stanza, void* const userdata)
{