* add a missing 'break' in the switch statement in
[modest] / src / modest-tny-account.c
index c18daa3..cb435a4 100644 (file)
@@ -110,10 +110,11 @@ modest_tny_account_get_special_folder (TnyAccount *account,
  * camel_sasl_authtype() seems to list some possible values.
  */
  
- /* Note that evolution does not offer this for IMAP: */
+/* Note that evolution does not offer these for IMAP: */
 #define MODEST_ACCOUNT_AUTH_PLAIN "PLAIN"
+#define MODEST_ACCOUNT_AUTH_ANONYMOUS "ANONYMOUS"
 
-/* IMAP uses NULL instead.
+/* Caeml's IMAP uses NULL instead for "Password".
  * Also, not that Evolution offers "Password" for IMAP, but "Login" for SMTP.*/
 #define MODEST_ACCOUNT_AUTH_PASSWORD "LOGIN" 
 #define MODEST_ACCOUNT_AUTH_CRAMMD5 "CRAM-MD5"
@@ -138,7 +139,7 @@ modest_tny_account_new_from_server_account (ModestAccountMgr *account_mgr,
        g_return_val_if_fail (account_data, NULL);
 
        /* sanity checks */
-       if (account_data->proto == MODEST_PROTOCOL_UNKNOWN) {
+       if (account_data->proto == MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN) {
                g_printerr ("modest: '%s' does not provide a protocol\n",
                            account_data->account_name);
                return NULL;
@@ -168,9 +169,9 @@ modest_tny_account_new_from_server_account (ModestAccountMgr *account_mgr,
        tny_account_set_id (tny_account, account_data->account_name);
 
        /* Proto */
-       tny_account_set_proto (tny_account,
-                              modest_protocol_info_get_protocol_name(account_data->proto,
-                                                                     MODEST_TRANSPORT_STORE_PROTOCOL));
+       const gchar* proto_name =
+               modest_protocol_info_get_transport_store_protocol_name(account_data->proto);
+       tny_account_set_proto (tny_account, proto_name);
 
               
        /* mbox and maildir accounts use a URI instead of the rest: */
@@ -201,7 +202,6 @@ modest_tny_account_new_from_server_account (ModestAccountMgr *account_mgr,
                                                      option_security);
                }
                
-
                const gchar* auth_mech_name = NULL;
                switch (account_data->secure_auth) {
                case MODEST_PROTOCOL_AUTH_NONE:
@@ -210,6 +210,8 @@ modest_tny_account_new_from_server_account (ModestAccountMgr *account_mgr,
                         * This setting should never happen anyway. */
                        if (account_data->proto == MODEST_PROTOCOL_STORE_IMAP)
                                auth_mech_name = NULL;
+                       else if (account_data->proto == MODEST_PROTOCOL_TRANSPORT_SMTP)
+                               auth_mech_name = MODEST_ACCOUNT_AUTH_ANONYMOUS;
                        else
                                auth_mech_name = MODEST_ACCOUNT_AUTH_PLAIN;
                        break;
@@ -225,10 +227,12 @@ modest_tny_account_new_from_server_account (ModestAccountMgr *account_mgr,
                        
                case MODEST_PROTOCOL_AUTH_CRAMMD5:
                        auth_mech_name = MODEST_ACCOUNT_AUTH_CRAMMD5;
+                       break;
                        
                default:
                        g_warning ("%s: Unhandled secure authentication setting %d for "
-                               "account=%s", __FUNCTION__, account_data->secure_auth, account_data->account_name);
+                               "account=%s (%s)", __FUNCTION__, account_data->secure_auth,
+                                  account_data->account_name, account_data->hostname);
                        break;
                }
                
@@ -319,8 +323,8 @@ modest_tny_account_new_from_account (ModestAccountMgr *account_mgr, const gchar
        tny_account_set_pass_func (tny_account,
                                   get_pass_func ? get_pass_func: get_pass_dummy);
 
-       /* this name is what shows up in the folder view -- so for some POP/IMAP/... server
-        * account, we set its name to the acount of which it is part */
+       /* This name is what shows up in the folder view -- so for some POP/IMAP/... server
+        * account, we set its name to the account of which it is part. */
        if (account_data->display_name)
                tny_account_set_name (tny_account, account_data->display_name); 
 
@@ -393,15 +397,15 @@ recurse_folders (TnyFolderStore *store,
 
        helper->folders += tny_list_get_length (folders);
 
-       while (!tny_iterator_is_done (iter))
-       {
+       while (!tny_iterator_is_done (iter)) {
                TnyFolderStats *stats;
                TnyFolder *folder;
 
                folder = TNY_FOLDER (tny_iterator_get_current (iter));
                stats = tny_folder_get_stats (folder);
 
-               if (helper->function)
+               /* initially, we sometimes get -1 from tinymail; ignore that */
+               if (helper->function && helper->function (stats) > 0)
                        helper->sum += helper->function (stats);
 
                recurse_folders (TNY_FOLDER_STORE (folder), query, helper);
@@ -444,7 +448,7 @@ modest_tny_account_get_message_count (TnyAccount *self)
        gint retval;
 
        g_return_val_if_fail (TNY_IS_ACCOUNT (self), -1);
-
+       
        /* Create helper */
        helper = g_malloc0 (sizeof (RecurseFoldersHelper));
        helper->function = (TnyStatsFunc) tny_folder_stats_get_all_count;