aboutsummaryrefslogtreecommitdiffstats
path: root/mail/mail-account-editor.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/mail-account-editor.c')
-rw-r--r--mail/mail-account-editor.c16
1 files changed, 5 insertions, 11 deletions
diff --git a/mail/mail-account-editor.c b/mail/mail-account-editor.c
index c4ae08265a..6336bc5635 100644
--- a/mail/mail-account-editor.c
+++ b/mail/mail-account-editor.c
@@ -166,22 +166,17 @@ apply_changes (MailAccountEditor *editor)
/* check to make sure the source works */
if (!mail_config_check_service (url, CAMEL_PROVIDER_STORE, NULL)) {
camel_url_free (url);
- account_destroy (account);
return FALSE;
}
+ g_free (account->source->url);
+ account->source->url = camel_url_to_string (url, FALSE);
+
if (account->source->save_passwd) {
- char *string;
-
- string = camel_url_to_string (url, FALSE);
- mail_session_set_password (string, url->passwd);
- mail_session_remember_password (string);
- g_free (string);
+ mail_session_set_password (account->source->url, url->passwd);
+ mail_session_remember_password (account->source->url);
}
- /* now that we know this url works, set it */
- g_free (account->source->url);
- account->source->url = camel_url_to_string (url, FALSE);
camel_url_free (url);
/* transport */
@@ -205,7 +200,6 @@ apply_changes (MailAccountEditor *editor)
/* check to make sure the transport works */
if (!mail_config_check_service (url, CAMEL_PROVIDER_TRANSPORT, NULL)) {
camel_url_free (url);
- account_destroy (account);
return FALSE;
}