X-Git-Url: http://git.maemo.org/git/?p=modest;a=blobdiff_plain;f=src%2Fmodest-tny-account.c;h=8b95766c000b0868a299d51aed225a7d2a4fd777;hp=838af3ec29dae92329e7894b64125dcb52708f85;hb=871a63abb8f32f2ddec19ca53d015e895b995d69;hpb=a462ac9c41c676808d42f22b5dfe209e98692f10 diff --git a/src/modest-tny-account.c b/src/modest-tny-account.c index 838af3e..8b95766 100644 --- a/src/modest-tny-account.c +++ b/src/modest-tny-account.c @@ -31,6 +31,7 @@ #include #include #include +#include #include #include #include @@ -273,7 +274,10 @@ update_tny_account (TnyAccount *tny_account, g_return_val_if_fail (account_name, FALSE); g_return_val_if_fail (tny_account, FALSE); - tny_account_set_id (tny_account, account_name); + /* Do not change the id if it's not needed */ + if (tny_account_get_id (tny_account) && + strcmp (tny_account_get_id (tny_account), account_name)) + tny_account_set_id (tny_account, account_name); /* mbox and maildir accounts use a URI instead of the rest: * Note that this is not where we create the special local folders account. @@ -284,7 +288,7 @@ update_tny_account (TnyAccount *tny_account, else { /* Set camel-specific options: */ /* Enable secure connection settings: */ - const gchar* option_security = NULL; + TnyPair *option_security = NULL; const gchar* auth_mech_name = NULL; ModestTransportStoreProtocol protocol; ModestConnectionProtocol security; @@ -293,33 +297,35 @@ update_tny_account (TnyAccount *tny_account, const gchar *hostname; guint port; + /* First of all delete old options */ + tny_camel_account_clear_options (TNY_CAMEL_ACCOUNT (tny_account)); + protocol = modest_server_account_settings_get_protocol (server_settings); security = modest_server_account_settings_get_security (server_settings); auth_protocol = modest_server_account_settings_get_auth_protocol (server_settings); switch (security) { case MODEST_PROTOCOL_CONNECTION_NORMAL: - option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_NEVER; + option_security = tny_pair_new (MODEST_ACCOUNT_OPTION_SSL,MODEST_ACCOUNT_OPTION_SSL_NEVER); break; case MODEST_PROTOCOL_CONNECTION_SSL: /* Apparently, use of "IMAPS" (specified in our UI spec), implies * use of the "wrapped" option: */ - option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_WRAPPED; + option_security = tny_pair_new (MODEST_ACCOUNT_OPTION_SSL,MODEST_ACCOUNT_OPTION_SSL_WRAPPED); break; case MODEST_PROTOCOL_CONNECTION_TLS: - option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_TLS; + option_security = tny_pair_new (MODEST_ACCOUNT_OPTION_SSL,MODEST_ACCOUNT_OPTION_SSL_TLS); break; case MODEST_PROTOCOL_CONNECTION_TLS_OP: /* This is not actually in our UI: */ - option_security = MODEST_ACCOUNT_OPTION_SSL "=" MODEST_ACCOUNT_OPTION_SSL_WHEN_POSSIBLE; + option_security = tny_pair_new (MODEST_ACCOUNT_OPTION_SSL,MODEST_ACCOUNT_OPTION_SSL_WHEN_POSSIBLE); break; default: break; } if(option_security) - tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account), - option_security); + tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account), option_security); /* Secure authentication: */ switch (auth_protocol) { @@ -366,9 +372,9 @@ update_tny_account (TnyAccount *tny_account, (protocol == MODEST_PROTOCOL_STORE_IMAP) ) { /* Other connection options, needed for IMAP. */ tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account), - MODEST_ACCOUNT_OPTION_USE_LSUB); + tny_pair_new (MODEST_ACCOUNT_OPTION_USE_LSUB, "")); tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account), - MODEST_ACCOUNT_OPTION_CHECK_ALL); + tny_pair_new (MODEST_ACCOUNT_OPTION_CHECK_ALL, "")); } username = modest_server_account_settings_get_username (server_settings); @@ -433,7 +439,9 @@ modest_tny_account_new_from_server_account_name (ModestAccountMgr *account_mgr, tny_account_set_pass_func (tny_account, get_pass_func ? get_pass_func: get_pass_dummy); } - + + tny_account_set_connection_policy (tny_account, modest_default_connection_policy_new ()); + g_object_unref (server_settings); return tny_account; @@ -526,10 +534,14 @@ modest_tny_account_update_from_account (TnyAccount *tny_account, g_object_unref (server_settings); g_object_unref (settings); + tny_account_set_forget_pass_func (tny_account, NULL); + tny_account_set_pass_func (tny_account, NULL); tny_account_set_forget_pass_func (tny_account, forget_pass_func ? forget_pass_func : forget_pass_dummy); tny_account_set_pass_func (tny_account, get_pass_func ? get_pass_func: get_pass_dummy); + + tny_account_set_connection_policy (tny_account, modest_default_connection_policy_new ()); /* The callback will have an error for you if the reconnect * failed. Please handle it (this is TODO). */ @@ -617,7 +629,9 @@ modest_tny_account_new_from_account (ModestAccountMgr *account_mgr, forget_pass_func ? forget_pass_func : forget_pass_dummy); tny_account_set_pass_func (tny_account, get_pass_func ? get_pass_func: get_pass_dummy); - + + tny_account_set_connection_policy (tny_account, modest_default_connection_policy_new ()); + modest_tny_account_set_parent_modest_account_name_for_server_account (tny_account, account_name); g_object_unref (server_settings); @@ -809,7 +823,9 @@ modest_tny_account_new_for_local_folders (ModestAccountMgr *account_mgr, TnySess tny_account_set_forget_pass_func (TNY_ACCOUNT(tny_account), forget_pass_dummy); tny_account_set_pass_func (TNY_ACCOUNT(tny_account), get_pass_dummy); - + + tny_account_set_connection_policy (TNY_ACCOUNT (tny_account), modest_default_connection_policy_new ()); + modest_tny_account_set_parent_modest_account_name_for_server_account ( TNY_ACCOUNT (tny_account), id); @@ -879,7 +895,9 @@ modest_tny_account_new_for_per_account_local_outbox_folder (ModestAccountMgr *ac tny_account_set_forget_pass_func (TNY_ACCOUNT(tny_account), forget_pass_dummy); tny_account_set_pass_func (TNY_ACCOUNT(tny_account), get_pass_dummy); - + + tny_account_set_connection_policy (TNY_ACCOUNT (tny_account), modest_default_connection_policy_new ()); + /* Make this think that it belongs to the modest local-folders parent account: */ modest_tny_account_set_parent_modest_account_name_for_server_account ( TNY_ACCOUNT (tny_account), MODEST_LOCAL_FOLDERS_ACCOUNT_ID);