X-Git-Url: http://git.maemo.org/git/?a=blobdiff_plain;f=src%2Fmodest-tny-account-store.c;h=a5a33d60466ce66af005f945e4956ec5246ed9c0;hb=00fb9f38ce4d17c8d4cb800e7ba9acdc2e777451;hp=8f72052b95e92fb629cd01b149b329aa163da931;hpb=c5ee8ba98ba1de8845bf548ad365ac0b0859616d;p=modest diff --git a/src/modest-tny-account-store.c b/src/modest-tny-account-store.c index 8f72052..a5a33d6 100644 --- a/src/modest-tny-account-store.c +++ b/src/modest-tny-account-store.c @@ -587,7 +587,7 @@ get_password (TnyAccount *account, const gchar * prompt_not_used, gboolean *canc already_asked = priv->password_hash && g_hash_table_lookup_extended (priv->password_hash, server_account_name, NULL, - &attempt_ptr); + attempt_ptr); /* If the password is not already there, try ModestConf */ if (!already_asked) { @@ -2155,8 +2155,6 @@ account_shutdown_callback (TnyCamelAccount *account, gboolean canceled, GError * op_data->callback (op_data->account_store, op_data->userdata); g_object_unref (op_data->account_store); g_free (op_data); - } else { - g_object_unref (op_data->account_store); } } @@ -2166,19 +2164,15 @@ account_shutdown (TnyAccount *account, ShutdownOpData *op_data) g_return_if_fail (account && TNY_IS_ACCOUNT(account)); if (TNY_IS_STORE_ACCOUNT (account) && - !modest_tny_folder_store_is_remote (TNY_FOLDER_STORE (account))) - goto frees; - - /* Disconnect account */ - if (tny_account_get_connection_status (account) == TNY_CONNECTION_STATUS_CONNECTED) { - tny_camel_account_set_online (TNY_CAMEL_ACCOUNT(account), FALSE, - account_shutdown_callback, op_data); + !modest_tny_folder_store_is_remote (TNY_FOLDER_STORE (account))) { + op_data->pending--; return; } - frees: - op_data->pending--; - g_object_unref (op_data->account_store); + /* Disconnect account */ + tny_camel_account_set_online (TNY_CAMEL_ACCOUNT(account), FALSE, + account_shutdown_callback, op_data); + } @@ -2187,7 +2181,7 @@ modest_tny_account_store_shutdown (ModestTnyAccountStore *self, ModestTnyAccountStoreShutdownCallback callback, gpointer userdata) { - gint i, num_accounts; + gint num_accounts; ShutdownOpData *op_data; ModestTnyAccountStorePrivate *priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE (self); @@ -2198,15 +2192,16 @@ modest_tny_account_store_shutdown (ModestTnyAccountStore *self, if (priv->transport_accounts) num_accounts += tny_list_get_length (priv->transport_accounts); - for (i = 0 ; i < num_accounts ; i++) - g_object_ref (self); - /* Create the helper object */ op_data = g_new0 (ShutdownOpData, 1); op_data->callback = callback; op_data->userdata = userdata; op_data->pending = num_accounts; - op_data->account_store = self; + op_data->account_store = g_object_ref (self); + + /* Force the TnyDevice to be offline. This way new + undesired connections won't be initiated */ + tny_device_force_offline (priv->device); /* Destroy all accounts. Disconnect all accounts before they are destroyed */ if (priv->store_accounts) { @@ -2220,6 +2215,7 @@ modest_tny_account_store_shutdown (ModestTnyAccountStore *self, if (op_data->pending == 0) { if (op_data->callback) op_data->callback (op_data->account_store, op_data->userdata); + g_object_unref (op_data->account_store); g_free (op_data); } }