} else {
/* Add the msg to the queue */
modest_mail_operation_notify_start (self);
- modest_tny_send_queue_add (MODEST_TNY_SEND_QUEUE(send_queue),
- msg,
- &(priv->error));
-
- priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
info = g_slice_new0 (SendMsgInfo);
info->mail_op = g_object_ref (self);
info->msg = g_object_ref (msg);
info->msg_sent_handler = g_signal_connect (G_OBJECT (send_queue), "msg-sent",
- G_CALLBACK (send_mail_msg_sent_handler), info);
+ G_CALLBACK (send_mail_msg_sent_handler), info);
info->error_happened_handler = g_signal_connect (G_OBJECT (send_queue), "error-happened",
- G_CALLBACK (send_mail_error_happened_handler), info);
+ G_CALLBACK (send_mail_error_happened_handler), info);
+
+ modest_tny_send_queue_add (MODEST_TNY_SEND_QUEUE(send_queue),
+ msg,
+ &(priv->error));
+
+ priv->status = MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS;
}
}
if (msgid2 == NULL) msgid2 = "(null)";
if (!strcmp (msgid1, msgid2)) {
+ if (error != NULL)
+ g_warning ("%s: %s\n", __FUNCTION__, error->message);
ModestMailOperationPrivate *priv = MODEST_MAIL_OPERATION_GET_PRIVATE (info->mail_op);
priv->status = MODEST_MAIL_OPERATION_STATUS_FAILED;
g_set_error (&(priv->error), MODEST_MAIL_OPERATION_ERROR,
/* Remove old mail from its source folder */
draft_folder = modest_tny_account_get_special_folder (TNY_ACCOUNT (info->transport_account),
TNY_FOLDER_TYPE_DRAFTS);
+ if (!draft_folder) {
+ g_warning ("%s: modest_tny_account_get_special_folder(..) returned a NULL drafts folder", __FUNCTION__);
+ goto end;
+ }
outbox_folder = modest_tny_account_get_special_folder (TNY_ACCOUNT (info->transport_account),
TNY_FOLDER_TYPE_OUTBOX);
+ if (!outbox_folder) {
+ g_warning ("%s: modest_tny_account_get_special_folder(..) returned a NULL outbox folder", __FUNCTION__);
+ goto end;
+ }
if (info->draft_msg != NULL) {
TnyFolder *folder = NULL;
TnyFolder *src_folder = NULL;
TNY_FOLDER_STORE (trash_folder),
TRUE, NULL, NULL);
g_object_unref (trash_folder);
+ } else {
+ g_warning ("%s: modest_tny_account_get_special_folder(..) returned a NULL trash folder", __FUNCTION__);
}
} else {
TnyFolderStore *parent = tny_folder_get_folder_store (folder);
if (!priv->error) {
gboolean expunge, leave_on_server;
const gchar *account_name;
+ const gchar *proto;
TnyAccount *account;
- ModestTransportStoreProtocol account_proto;
+ ModestTransportStoreProtocol account_proto = MODEST_PROTOCOL_TRANSPORT_STORE_UNKNOWN;
account = tny_folder_get_account (folder);
account_name = modest_tny_account_get_parent_modest_account_name_for_server_account (account);
modest_account_mgr_get_leave_on_server (modest_runtime_get_account_mgr (),
account_name);
- account_proto = modest_protocol_info_get_transport_store_protocol (tny_account_get_proto (account));
+ proto = tny_account_get_proto (account);
+ if (proto) {
+ account_proto = modest_protocol_info_get_transport_store_protocol (proto);
+ }
if (((account_proto == MODEST_PROTOCOL_STORE_POP) && !leave_on_server) ||
modest_tny_folder_is_remote_folder (folder) == FALSE)
tny_iterator_next (iter);
}
-
}
modest_mail_operation_notify_start (self);
modest_mail_operation_notify_end (self);
}
+
+
+gchar*
+modest_mail_operation_to_string (ModestMailOperation *self)
+{
+ const gchar *type, *status, *account_id;
+ ModestMailOperationPrivate *priv = NULL;
+
+ g_return_val_if_fail (self, NULL);
+
+ priv = MODEST_MAIL_OPERATION_GET_PRIVATE(self);
+
+ switch (priv->op_type) {
+ case MODEST_MAIL_OPERATION_TYPE_SEND: type= "SEND"; break;
+ case MODEST_MAIL_OPERATION_TYPE_RECEIVE: type= "RECEIVE"; break;
+ case MODEST_MAIL_OPERATION_TYPE_OPEN: type= "OPEN"; break;
+ case MODEST_MAIL_OPERATION_TYPE_DELETE: type= "DELETE"; break;
+ case MODEST_MAIL_OPERATION_TYPE_INFO: type= "INFO"; break;
+ case MODEST_MAIL_OPERATION_TYPE_UNKNOWN: type= "UNKNOWN"; break;
+ default: type = "UNEXPECTED"; break;
+ }
+
+ switch (priv->status) {
+ case MODEST_MAIL_OPERATION_STATUS_INVALID: status= "INVALID"; break;
+ case MODEST_MAIL_OPERATION_STATUS_SUCCESS: status= "SUCCESS"; break;
+ case MODEST_MAIL_OPERATION_STATUS_FINISHED_WITH_ERRORS: status= "FINISHED-WITH-ERRORS"; break;
+ case MODEST_MAIL_OPERATION_STATUS_FAILED: status= "FAILED"; break;
+ case MODEST_MAIL_OPERATION_STATUS_IN_PROGRESS: status= "IN-PROGRESS"; break;
+ case MODEST_MAIL_OPERATION_STATUS_CANCELED: status= "CANCELLED"; break;
+ default: status= "UNEXPECTED"; break;
+ }
+
+ account_id = priv->account ? tny_account_get_id (priv->account) : "";
+
+ return g_strdup_printf ("%p \"%s\" (%s) [%s] {%d/%d} '%s'", self, account_id,type, status,
+ priv->done, priv->total,
+ priv->error && priv->error->message ? priv->error->message : "");
+}