+ if (!ok)
+ goto cleanup;
+
+ /* proto */
+ key = _modest_account_mgr_get_account_keyname (name, MODEST_ACCOUNT_PROTO, TRUE);
+ ok = modest_conf_set_string (priv->modest_conf, key,
+ modest_protocol_info_get_transport_store_protocol_name(proto),
+ &err);
+ if (err) {
+ g_printerr ("modest: failed to set %s: %s\n", key, err->message);
+ g_error_free (err);
+ ok = FALSE;
+ }
+ g_free (key);
+ if (!ok)
+ goto cleanup;
+
+
+ /* portnumber */
+ key = _modest_account_mgr_get_account_keyname (name, MODEST_ACCOUNT_PORT, TRUE);
+ ok = modest_conf_set_int (priv->modest_conf, key, portnumber, &err);
+ if (err) {
+ g_printerr ("modest: failed to set %s: %s\n", key, err->message);
+ g_error_free (err);
+ ok = FALSE;
+ }
+ g_free (key);
+ if (!ok)
+ goto cleanup;
+
+
+ /* auth mechanism */
+ key = _modest_account_mgr_get_account_keyname (name, MODEST_ACCOUNT_AUTH_MECH, TRUE);
+ ok = modest_conf_set_string (priv->modest_conf, key,
+ modest_protocol_info_get_auth_protocol_name (auth),
+ &err);
+ if (err) {
+ g_printerr ("modest: failed to set %s: %s\n", key, err->message);
+ g_error_free (err);
+ ok = FALSE;
+ }
+ g_free (key);
+ if (!ok)
+ goto cleanup;
+
+ /* Add the security settings: */
+ modest_server_account_set_security (self, name, security);
+
+cleanup:
+ if (!ok) {
+ g_printerr ("modest: failed to add server account\n");
+ return FALSE;
+ }
+
+ return TRUE;
+}