- cursor = accounts = modest_account_mgr_account_names (priv->account_mgr, NULL);
-
- while (cursor) {
- gchar *account_name;
- gchar *server_account;
- TnyAccount *account;
- gboolean is_server_account;
-
- account_name = (gchar*)cursor->data;
- account = NULL;
- is_server_account = FALSE;
-
- if (!modest_account_mgr_account_get_enabled (priv->account_mgr, account_name)) {
- g_free (account_name);
- cursor = cursor->next;
- continue;
- }
-
- if (modest_type == MODEST_PROTOCOL_TYPE_TRANSPORT || modest_type == MODEST_PROTOCOL_TYPE_ANY) {
- server_account = get_server_account_for_account (self, account_name,
- MODEST_PROTOCOL_TYPE_TRANSPORT);
- if (server_account) {
- account = tny_account_from_name (self, account_name,
- server_account,
- MODEST_PROTOCOL_TYPE_TRANSPORT);
- is_server_account = TRUE;
- }
-
- if (!account)
- g_printerr ("modest: no transport account for '%s'\n",
- account_name);
- else
- tny_list_prepend (list, G_OBJECT(account));
-
- g_free (server_account);
- }
-
- if (modest_type == MODEST_PROTOCOL_TYPE_STORE || modest_type == MODEST_PROTOCOL_TYPE_ANY) {
- server_account = get_server_account_for_account (self, account_name,
- MODEST_PROTOCOL_TYPE_STORE);
- if (server_account) {
- account = tny_account_from_name (self, account_name,
- server_account,
- MODEST_PROTOCOL_TYPE_STORE);
- is_server_account = TRUE;
- }
-
- if (!account)
- g_printerr ("modest: no store account for '%s'\n",
- account_name);
- else
- tny_list_prepend (list, G_OBJECT(account));
- g_free (server_account);
+ accounts = modest_account_mgr_account_names (priv->account_mgr, NULL);
+ for (cursor = accounts; cursor; cursor = cursor->next) {
+ TnyAccount *tny_account = NULL;
+ ModestAccountData *account_data =
+ modest_account_mgr_get_account_data (priv->account_mgr,
+ (gchar*)cursor->data);
+ if (account_data && account_data->enabled) {
+ tny_account = get_tny_account_from_account (self, account_data, type);
+ if (tny_account)
+ tny_list_prepend (list, G_OBJECT(tny_account));