void QuetzalAccount::setStatus(Status status) { PurpleStatus *purple_status = quetzal_get_correct_status(m_account->presence, status); debug() << purple_status_get_id(purple_status) << purple_status_get_name(purple_status); purple_presence_set_status_active(m_account->presence, purple_status_get_id(purple_status), TRUE); if (status.type() != Status::Offline) purple_account_connect(m_account); }
void client_enable_account(PurpleAccount *account) { if ((account) && !purple_account_get_enabled(account, UI_ID)) { LM_DBG("account %s disabled, enabling...\n", account->username); purple_account_set_enabled(account, UI_ID, TRUE); } if ((account) && purple_account_is_disconnected(account)) { LM_DBG("account %s disconnected, reconnecting...\n", account->username); purple_account_connect(account); LM_DBG("account %s connection called\n", account->username); } }
static void jidgin_worker_cb_retry(PurpleAccount *account) { if (retry_count) { sleep(10); purple_account_connect(account); } else { jidgin_worker_get_uptime_str(); jidgin_log(LOG_CRIT, "[%s][jidgin down]%s\n", jidgin_worker_uptime, purple_account_get_username(account)); abort(); } --retry_count; }
static void do_prpl_change_account_status(PurpleAccount *account, PurpleStatus *old_status, PurpleStatus *new_status) { PurplePlugin *prpl; PurplePluginProtocolInfo *prpl_info; if (purple_status_is_online(new_status) && purple_account_is_disconnected(account) && purple_network_is_available()) { purple_account_connect(account); return; } if (!purple_status_is_online(new_status)) { if (!purple_account_is_disconnected(account)) purple_account_disconnect(account); /* Clear out the unsaved password if we're already disconnected and we switch to offline status */ else if (!purple_account_get_remember_password(account)) purple_account_set_password(account, NULL); return; } if (purple_account_is_connecting(account)) /* * We don't need to call the set_status PRPL function because * the PRPL will take care of setting its status during the * connection process. */ return; prpl = purple_find_prpl(purple_account_get_protocol_id(account)); if (prpl == NULL) return; prpl_info = PURPLE_PLUGIN_PROTOCOL_INFO(prpl); if (!purple_account_is_disconnected(account) && prpl_info->set_status != NULL) { prpl_info->set_status(account, new_status); } }
static void pb_oauth_set_access_token_cb(gpointer data, const gchar *access_token) { PurpleAccount *account = data; gchar *real_access_token; const gchar *access_token_start; const gchar *access_token_end; gchar *strtmp; if (!access_token || !(*access_token)) { return; } if((access_token_start = strstr(access_token, "access_token="))) { access_token_start += 13; access_token_end = strchr(access_token_start, '&'); if (access_token_end) real_access_token = g_strndup(access_token_start, access_token_end - access_token_start); else real_access_token = g_strdup(access_token_start); strtmp = g_strdup(purple_url_decode(real_access_token)); g_free(real_access_token); real_access_token = strtmp; } else { real_access_token = g_strdup(access_token); } if (real_access_token && *real_access_token) { purple_account_set_remember_password(account, TRUE); purple_account_set_password(account, real_access_token); purple_account_set_enabled(account, purple_core_get_ui(), TRUE); purple_account_connect(account); } g_free(real_access_token); }
static gboolean do_signon(gpointer data) { PurpleAccount *account = data; PidginAutoRecon *info; PurpleStatus *status; purple_debug_info("autorecon", "do_signon called\n"); g_return_val_if_fail(account != NULL, FALSE); info = g_hash_table_lookup(auto_reconns, account); if (info) info->timeout = 0; status = purple_account_get_active_status(account); if (purple_status_is_online(status)) { purple_debug_info("autorecon", "calling purple_account_connect\n"); purple_account_connect(account); purple_debug_info("autorecon", "done calling purple_account_connect\n"); } return FALSE; }
static int account_connect(LuaState *L)/*{{{*/ { PurpleAccount **account = ms_lua_checkclass(L, "purple.account", 1); purple_account_connect(*account); return 0; }/*}}}*/