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:
@@ -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)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user