From a79cd23cd177b9da14eb5dd2037384315ace5382 Mon Sep 17 00:00:00 2001 From: "Foivos S. Zakkak" Date: Sat, 18 Oct 2014 12:33:20 +0300 Subject: [PATCH] Improve decrypt failure handling On failure to decrypt, list the encrypted part as an attachment --- lib/mu-msg-part.c | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/lib/mu-msg-part.c b/lib/mu-msg-part.c index f5e45dd0..9403876e 100644 --- a/lib/mu-msg-part.c +++ b/lib/mu-msg-part.c @@ -381,6 +381,7 @@ handle_encrypted_part (MuMsg *msg, MuMsgPartForeachFunc func, gpointer user_data) { GError *err; + gboolean rv; GMimeObject *dec; MuMsgPartPasswordFunc pw_func; @@ -398,14 +399,23 @@ handle_encrypted_part (MuMsg *msg, } if (dec) { - gboolean rv; rv = handle_mime_object (msg, dec, parent, opts, index, func, user_data); g_object_unref (dec); - return rv; + } else { + // On failure to decrypt, list the encrypted part as + // an attachment + GMimeObject *encrypted; + + encrypted = g_mime_multipart_get_part (GMIME_MULTIPART (part), 1); + + g_return_val_if_fail (GMIME_IS_PART(encrypted), FALSE); + + rv = handle_mime_object (msg, encrypted, parent, opts, + index, func, user_data); } - return TRUE; + return rv; }