diff --git a/src/command/cmd_funcs.c b/src/command/cmd_funcs.c index 857f24e6..9e98fb07 100644 --- a/src/command/cmd_funcs.c +++ b/src/command/cmd_funcs.c @@ -6467,7 +6467,6 @@ cmd_reconnect(ProfWin* window, const char* const command, gchar** args) int intval = 0; auto_char char* err_msg = NULL; if (g_strcmp0(value, "now") == 0) { - cons_show("Reconnecting now."); cl_ev_reconnect(); } else if (strtoi_range(value, &intval, 0, INT_MAX, &err_msg)) { prefs_set_reconnect(intval); diff --git a/src/event/client_events.c b/src/event/client_events.c index e8620234..bccedc97 100644 --- a/src/event/client_events.c +++ b/src/event/client_events.c @@ -98,7 +98,14 @@ cl_ev_disconnect(void) void cl_ev_reconnect(void) { - if (connection_get_status() != JABBER_DISCONNECTED) { + jabber_conn_status_t conn_status = connection_get_status(); + if (conn_status == JABBER_CONNECTING) { + cons_show_error("Reconnection aborted: Connection attempt is already in progress"); + return; + } + + cons_show("Reconnecting now."); + if (conn_status != JABBER_DISCONNECTED && conn_status != JABBER_DISCONNECTING) { connection_disconnect(); ev_disconnect_cleanup(); // on intentional disconnect reset the counter diff --git a/src/ui/window.c b/src/ui/window.c index f75e7d06..730859d2 100644 --- a/src/ui/window.c +++ b/src/ui/window.c @@ -312,7 +312,10 @@ win_get_title(ProfWin* window) { const ProfChatWin* chatwin = (ProfChatWin*)window; assert(chatwin->memcheck == PROFCHATWIN_MEMCHECK); - const PContact contact = roster_get_contact(chatwin->barejid); + PContact contact = NULL; + if (roster_exists()) { + contact = roster_get_contact(chatwin->barejid); + } if (!contact) { return g_strdup(chatwin->barejid); }