void sv_ev_login_account_success(char *account_name) { ProfAccount *account = accounts_get_account(account_name); #ifdef HAVE_LIBOTR otr_on_connect(account); #endif ui_handle_login_account_success(account); // attempt to rejoin rooms with passwords GList *curr = muc_rooms(); while (curr) { char *password = muc_password(curr->data); if (password) { char *nick = muc_nick(curr->data); presence_join_room(curr->data, nick, password); } curr = g_list_next(curr); } g_list_free(curr); log_info("%s logged in successfully", account->jid); account_free(account); }
void message_send_invite(const char *const roomjid, const char *const contact, const char *const reason) { xmpp_conn_t * const conn = connection_get_conn(); xmpp_ctx_t * const ctx = connection_get_ctx(); xmpp_stanza_t *stanza; muc_member_type_t member_type = muc_member_type(roomjid); if (member_type == MUC_MEMBER_TYPE_PUBLIC) { log_debug("Sending direct invite to %s, for %s", contact, roomjid); char *password = muc_password(roomjid); stanza = stanza_create_invite(ctx, roomjid, contact, reason, password); } else { log_debug("Sending mediated invite to %s, for %s", contact, roomjid); stanza = stanza_create_mediated_invite(ctx, roomjid, contact, reason); } xmpp_send(conn, stanza); xmpp_stanza_release(stanza); }
void sv_ev_login_account_success(char *account_name, gboolean secured) { ProfAccount *account = accounts_get_account(account_name); roster_create(); #ifdef HAVE_LIBOTR otr_on_connect(account); #endif #ifdef HAVE_LIBGPGME p_gpg_on_connect(account->jid); #endif ui_handle_login_account_success(account, secured); // attempt to rejoin rooms with passwords GList *curr = muc_rooms(); while (curr) { char *password = muc_password(curr->data); if (password) { char *nick = muc_nick(curr->data); presence_join_room(curr->data, nick, password); } curr = g_list_next(curr); } g_list_free(curr); log_info("%s logged in successfully", account->jid); if (account->startscript) { scripts_exec(account->startscript); } account_free(account); }