Beispiel #1
0
void
ui_idle(void)
{
    GSList *recipients = wins_get_chat_recipients();
    GSList *curr = recipients;
    while (curr != NULL) {
        char *recipient = curr->data;
        chat_session_no_activity(recipient);

        if (chat_session_is_gone(recipient) &&
                !chat_session_get_sent(recipient)) {
            message_send_gone(recipient);
        } else if (chat_session_is_inactive(recipient) &&
                !chat_session_get_sent(recipient)) {
            message_send_inactive(recipient);
        } else if (prefs_get_boolean(PREF_OUTTYPE) &&
                chat_session_is_paused(recipient) &&
                !chat_session_get_sent(recipient)) {
            message_send_paused(recipient);
        }

        curr = g_slist_next(curr);
    }

    if (recipients != NULL) {
        g_slist_free(recipients);
    }
}
Beispiel #2
0
void
sv_ev_lost_connection(void)
{
    cons_show_error("Lost connection.");

#ifdef HAVE_LIBOTR
    GSList *recipients = wins_get_chat_recipients();
    GSList *curr = recipients;
    while (curr) {
        char *barejid = curr->data;
        ProfChatWin *chatwin = wins_get_chat(barejid);
        if (chatwin && otr_is_secure(barejid)) {
            chatwin_otr_unsecured(chatwin);
            otr_end_session(barejid);
        }
        curr = g_slist_next(curr);
    }
    if (recipients) {
        g_slist_free(recipients);
    }
#endif

    muc_invites_clear();
    chat_sessions_clear();
    ui_disconnected();
    roster_destroy();
#ifdef HAVE_LIBGPGME
    p_gpg_on_disconnect();
#endif
}
Beispiel #3
0
void
prof_handle_idle(void)
{
    jabber_conn_status_t status = jabber_get_connection_status();
    if (status == JABBER_CONNECTED) {
        GSList *recipients = wins_get_chat_recipients();
        GSList *curr = recipients;

        while (curr) {
            char *barejid = curr->data;
            ProfChatWin *chatwin = wins_get_chat(barejid);
            chat_state_handle_idle(chatwin->barejid, chatwin->state);
            curr = g_slist_next(curr);
        }

        if (recipients) {
            g_slist_free(recipients);
        }
    }
}