Propagate SELECT error properly to dependent commands
authorDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 30 Jun 2010 08:44:25 +0000 (09:44 +0100)
committerDavid Woodhouse <David.Woodhouse@intel.com>
Wed, 30 Jun 2010 08:49:39 +0000 (09:49 +0100)
camel/providers/imapx/camel-imapx-server.c

index e609313..b8729f6 100644 (file)
@@ -2276,7 +2276,13 @@ imapx_command_select_done (CamelIMAPXServer *is, CamelIMAPXCommand *ic)
                        while (cn) {
                                if (ic->status)
                                        cw->status = imapx_copy_status(ic->status);
-                               camel_exception_setv (cw->ex, 1, "select %s failed", cw->select);
+                               if (camel_exception_is_set(ic->ex))
+                                       camel_exception_xfer (cw->ex, ic->ex);
+                               else {
+                                       camel_exception_setv (cw->ex, 1, "SELECT %s failed: %s",
+                                                             camel_folder_get_full_name(cw->select),
+                                                             ic->status->text?:"<unknown reason>");
+                               }
                                cw->complete(is, cw);
                                cw = cn;
                                cn = cn->next;