-/* create a tnyaccount for the server account connected to the account with name 'key'
- */
-static TnyAccount*
-get_tny_account_from_server_account (ModestTnyAccountStore *self,
- ModestServerAccountData *account_data, TnyAccountType type)
-{
- TnyAccount *tny_account;
- ModestTnyAccountStorePrivate *priv;
-
- g_return_val_if_fail (self, NULL);
- g_return_val_if_fail (account_data, NULL);
-
- priv = MODEST_TNY_ACCOUNT_STORE_GET_PRIVATE(self);
-
- /* sanity checks */
- if (account_data->proto == MODEST_PROTOCOL_UNKNOWN) {
- g_printerr ("modest: '%s' does not provide a protocol\n",
- account_data->account_name);
- return NULL;
- }
- if ((account_data->proto == MODEST_PROTOCOL_TYPE_TRANSPORT && type != TNY_ACCOUNT_TYPE_TRANSPORT) ||
- (account_data->proto == MODEST_PROTOCOL_TYPE_STORE && type != TNY_ACCOUNT_TYPE_STORE)) {
- g_printerr ("modest: protocol types do not match <%d,%d>\n", account_data->proto, type);
- return NULL;
- }
-
- switch (account_data->proto) {
- case MODEST_PROTOCOL_TRANSPORT_SENDMAIL:
- case MODEST_PROTOCOL_TRANSPORT_SMTP:
- tny_account = TNY_ACCOUNT(tny_camel_transport_account_new ()); break;
- case MODEST_PROTOCOL_STORE_POP:
- tny_account = TNY_ACCOUNT(tny_camel_pop_store_account_new ()); break;
- case MODEST_PROTOCOL_STORE_IMAP:
- tny_account = TNY_ACCOUNT(tny_camel_imap_store_account_new ()); break;
- case MODEST_PROTOCOL_STORE_MAILDIR:
- case MODEST_PROTOCOL_STORE_MBOX:
- tny_account = TNY_ACCOUNT(tny_camel_store_account_new()); break;
- default:
- g_return_val_if_reached (NULL);
- }
-
- if (!tny_account) {
- g_printerr ("modest: could not create tny account for '%s'\n",
- account_data->account_name);
- return NULL;
- }
- tny_account_set_id (tny_account, account_data->account_name);
-
- /*
- * FIXME --> bug in tinymail
- */
- if (type == TNY_ACCOUNT_TYPE_TRANSPORT) {
- g_printerr ("modest: BUG: cannot create transports accounts... stay tuned\n");
- g_object_unref (G_OBJECT(tny_account));
- return NULL;
- }
-
- tny_camel_account_set_session (TNY_CAMEL_ACCOUNT(tny_account), priv->tny_session_camel);
- tny_account_set_forget_pass_func (tny_account, forget_password);
- tny_account_set_pass_func (tny_account, get_password);
-
- /* Proto */
- tny_account_set_proto (tny_account,
- modest_protocol_info_get_protocol_name(account_data->proto));
- g_object_set_data (G_OBJECT(tny_account), "account_store", (gpointer)self);
-
- if (account_data->uri)
- tny_account_set_url_string (TNY_ACCOUNT(tny_account), account_data->uri);
- else {
- if (account_data->options) {
- GSList *options = account_data->options;
- while (options) {
- tny_camel_account_add_option (TNY_CAMEL_ACCOUNT (tny_account),
- options->data);
- options = g_slist_next (options);
- }
- }
- if (account_data->username)
- tny_account_set_user (tny_account, account_data->username);
- if (account_data->hostname)
- tny_account_set_hostname (tny_account, account_data->hostname);
- }
- return tny_account;
-}
-
-