mirror of
https://github.com/profanity-im/profanity.git
synced 2024-12-04 14:46:46 -05:00
Merge pull request #1105 from profanity-im/autoping-timer-cancel
Cancel autoping timer on disconnect or connection loss
This commit is contained in:
commit
2052a511c3
@ -53,6 +53,7 @@ ev_disconnect_cleanup(void)
|
||||
ui_disconnected();
|
||||
session_disconnect();
|
||||
roster_destroy();
|
||||
iq_autoping_timer_cancel();
|
||||
muc_invites_clear();
|
||||
muc_confserver_clear();
|
||||
chat_sessions_clear();
|
||||
|
@ -262,6 +262,16 @@ iq_id_handler_add(const char *const id, ProfIqCallback func, ProfIqFreeCallback
|
||||
g_hash_table_insert(id_handlers, strdup(id), handler);
|
||||
}
|
||||
|
||||
void
|
||||
iq_autoping_timer_cancel(void)
|
||||
{
|
||||
autoping_wait = FALSE;
|
||||
if (autoping_time) {
|
||||
g_timer_destroy(autoping_time);
|
||||
autoping_time = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
iq_autoping_check(void)
|
||||
{
|
||||
@ -283,10 +293,8 @@ iq_autoping_check(void)
|
||||
if (timeout > 0 && seconds_elapsed >= timeout) {
|
||||
cons_show("Autoping response timed out after %u seconds.", timeout);
|
||||
log_debug("Autoping check: timed out after %u seconds, disconnecting", timeout);
|
||||
iq_autoping_timer_cancel();
|
||||
session_autoping_fail();
|
||||
autoping_wait = FALSE;
|
||||
g_timer_destroy(autoping_time);
|
||||
autoping_time = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
@ -1371,11 +1379,7 @@ _autoping_timed_send(xmpp_conn_t *const conn, void *const userdata)
|
||||
static int
|
||||
_auto_pong_id_handler(xmpp_stanza_t *const stanza, void *const userdata)
|
||||
{
|
||||
autoping_wait = FALSE;
|
||||
if (autoping_time) {
|
||||
g_timer_destroy(autoping_time);
|
||||
autoping_time = NULL;
|
||||
}
|
||||
iq_autoping_timer_cancel();
|
||||
|
||||
const char *id = xmpp_stanza_get_id(stanza);
|
||||
if (id == NULL) {
|
||||
|
@ -187,6 +187,7 @@ void iq_room_affiliation_set(const char *const room, const char *const jid, char
|
||||
void iq_room_kick_occupant(const char *const room, const char *const nick, const char *const reason);
|
||||
void iq_room_role_set(const char *const room, const char *const nick, char *role, const char *const reason);
|
||||
void iq_room_role_list(const char * const room, char *role);
|
||||
void iq_autoping_timer_cancel(void);
|
||||
void iq_autoping_check(void);
|
||||
void iq_http_upload_request(HTTPUpload *upload);
|
||||
void iq_command_list(const char *const target);
|
||||
|
@ -206,6 +206,7 @@ void iq_room_role_set(const char * const room, const char * const nick, char *ro
|
||||
const char * const reason) {}
|
||||
void iq_room_role_list(const char * const room, char *role) {}
|
||||
void iq_last_activity_request(gchar *jid) {}
|
||||
void iq_autoping_timer_cancel(void) {}
|
||||
void iq_autoping_check(void) {}
|
||||
void iq_rooms_cache_clear(void) {}
|
||||
void iq_command_list(const char *const target) {}
|
||||
|
Loading…
Reference in New Issue
Block a user