-
-/* create a tnyaccount for the server account connected to the account with name 'key'
- */
-static TnyAccount*
-tny_account_from_name (ModestTnyAccountStore *self, const gchar *account,
- const gchar *server_account, ModestProtocolType modest_type)
-{
- TnyAccount *tny_account;
- ModestTnyAccountStorePrivate *priv;
- gchar *val;
- GSList *options = NULL;
- GError *error = NULL;
-
- g_return_val_if_fail (self, NULL);
- g_return_val_if_fail (account, NULL);
- g_return_val_if_fail (server_account, NULL);
-
- priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
-
- /* is it a store or a transport? */
- if (modest_type == MODEST_PROTOCOL_TYPE_STORE)
- tny_account = TNY_ACCOUNT(tny_camel_store_account_new ());
- else if (modest_type == MODEST_PROTOCOL_TYPE_TRANSPORT)
- tny_account = TNY_ACCOUNT(tny_camel_transport_account_new ());
- else
- g_assert_not_reached ();
-
- if (!tny_account) {
- g_printerr ("modest: failed to create new tny account for '%s:%s'\n",
- account, server_account);
- return NULL;
- }
-
- set_account_store_for_account (TNY_ACCOUNT(tny_account), self);
-
- /* session */
- tny_camel_account_set_session (TNY_CAMEL_ACCOUNT(tny_account),
- priv->tny_session_camel);
-
- /* id */
- tny_account_set_id (tny_account, server_account);
-
- /* name */
- val = modest_account_mgr_get_string (priv->account_mgr, account,
- MODEST_ACCOUNT_DISPLAY_NAME, FALSE, NULL);
- if (val) {
- tny_account_set_name (tny_account, val);
- g_free (val);
- } else {
- g_printerr ("modest: display name not defined for '%s:%s'\n",
- account, server_account);
- g_object_unref (G_OBJECT(tny_account));
- return NULL;
- }
-
- /* proto */
- val = modest_account_mgr_get_string (priv->account_mgr, server_account,
- MODEST_ACCOUNT_PROTO, TRUE, NULL);
- if (val) {
- tny_account_set_proto (tny_account, val);
- g_free (val);
- } else {
- g_printerr ("modest: protocol not defined for '%s:%s'\n",
- account, server_account);
- g_object_unref (G_OBJECT(tny_account));
- return NULL;
- }
-
- /* Options */
- options = modest_account_mgr_get_list (priv->account_mgr,
- tny_account_get_id (tny_account),
- MODEST_ACCOUNT_OPTIONS,
- MODEST_CONF_VALUE_STRING,
- TRUE,
- &error);
-
- if (error) {
- g_warning ("Error retrieving account %s options: %s",
- tny_account_get_id (tny_account), error->message);
- g_error_free (error);
- } else {
- GSList *tmp = options;
- while (options) {
- tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account), options->data);
- g_free (options->data);
- options = g_slist_next (options);
- }
- g_slist_free (tmp);
- }
-
- /* hostname */
- val = modest_account_mgr_get_string (priv->account_mgr, server_account,
- MODEST_ACCOUNT_HOSTNAME, TRUE,
- NULL);
- if (val) {
- tny_account_set_hostname (tny_account, val);
- g_free (val);
- }
-
- /* username */
- val = modest_account_mgr_get_string (priv->account_mgr, server_account,
- MODEST_ACCOUNT_USERNAME, TRUE,
- NULL);
- if (val) {
- tny_account_set_user (tny_account, val);
- g_free (val);