diff options
author | Michael Vetter <jubalh@iodoru.org> | 2019-06-03 14:11:00 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-06-03 14:11:00 +0200 |
commit | 48013f8d4368a81596cff42b5697a6f49a29865e (patch) | |
tree | 8602c9a25b44e9dad28e48a6da9d11e02b51d8aa /src | |
parent | 2052a511c3b2bb47b528cad9e9a597092554ff3d (diff) | |
parent | 4344ee2a5a5f4139d45edace5b1d22b159358f25 (diff) | |
download | profani-tty-48013f8d4368a81596cff42b5697a6f49a29865e.tar.gz |
Merge pull request #1106 from profanity-im/saved-account
Don't clear saved account data in session_disconnect()
Diffstat (limited to 'src')
-rw-r--r-- | src/xmpp/session.c | 35 |
1 files changed, 7 insertions, 28 deletions
diff --git a/src/xmpp/session.c b/src/xmpp/session.c index 67cbb17f..b2b56695 100644 --- a/src/xmpp/session.c +++ b/src/xmpp/session.c @@ -113,14 +113,11 @@ session_connect_with_account(const ProfAccount *const account) log_info("Connecting using account: %s", account->name); + _session_free_saved_account(); + _session_free_saved_details(); + // save account name and password for reconnect - if (saved_account.name) { - free(saved_account.name); - } saved_account.name = strdup(account->name); - if (saved_account.passwd) { - free(saved_account.passwd); - } saved_account.passwd = strdup(account->password); char *jid = NULL; @@ -150,6 +147,9 @@ session_connect_with_details(const char *const jid, const char *const passwd, co assert(jid != NULL); assert(passwd != NULL); + _session_free_saved_account(); + _session_free_saved_details(); + // save details for reconnect, remember name for account creating on success saved_details.name = strdup(jid); saved_details.passwd = strdup(passwd); @@ -196,20 +196,6 @@ session_connect_with_details(const char *const jid, const char *const passwd, co void session_autoping_fail(void) { - if (connection_get_status() == JABBER_CONNECTED) { - log_info("Closing connection"); - - char *account_name = session_get_account_name(); - const char *fulljid = connection_get_fulljid(); - plugins_on_disconnect(account_name, fulljid); - - accounts_set_last_activity(session_get_account_name()); - - connection_disconnect(); - } - - connection_set_disconnected(); - session_lost_connection(); } @@ -230,11 +216,7 @@ session_disconnect(void) connection_disconnect(); - _session_free_saved_account(); - _session_free_saved_details(); - connection_clear_data(); - chat_sessions_clear(); presence_clear_sub_requests(); } @@ -359,6 +341,7 @@ session_login_failed(void) void session_lost_connection(void) { + /* this callback also clears all cached data */ sv_ev_lost_connection(); if (prefs_get_reconnect() != 0) { assert(reconnect_timer == NULL); @@ -367,10 +350,6 @@ session_lost_connection(void) _session_free_saved_account(); _session_free_saved_details(); } - - connection_clear_data(); - chat_sessions_clear(); - presence_clear_sub_requests(); } void |