aboutsummaryrefslogtreecommitdiff
path: root/util/gmime-extra.c
diff options
context:
space:
mode:
authorDavid Bremner <david@tethera.net>2017-05-14 14:49:31 -0300
committerDavid Bremner <david@tethera.net>2017-07-14 21:23:52 -0300
commitc7b9bdb81e49321170dc6f0a522301f28e791521 (patch)
treef556fb62fdb3ba9235ad281f9e9c8abbd9c2619c /util/gmime-extra.c
parentf4a989484fb678ad2c1adf84b842451208a08ad5 (diff)
cli: generalize use of GMIME_SIGNATURE_{ERROR,STATUS} to gmime-3
The ERROR enum is merged into to the STATUS enum, and the set of flags is different.
Diffstat (limited to 'util/gmime-extra.c')
-rw-r--r--util/gmime-extra.c41
1 files changed, 41 insertions, 0 deletions
diff --git a/util/gmime-extra.c b/util/gmime-extra.c
index 8f9e77a1..350f75ea 100644
--- a/util/gmime-extra.c
+++ b/util/gmime-extra.c
@@ -84,6 +84,20 @@ g_mime_message_get_reply_to_string (void *ctx, GMimeMessage *message)
return talloc_strdup(ctx, g_mime_message_get_reply_to (message));
}
+gboolean
+g_mime_signature_status_good (GMimeSignatureStatus status) {
+ return (status == GMIME_SIGNATURE_STATUS_GOOD);
+}
+
+gboolean
+g_mime_signature_status_bad (GMimeSignatureStatus status) {
+ return (status == GMIME_SIGNATURE_STATUS_BAD);
+}
+
+gboolean
+g_mime_signature_status_error (GMimeSignatureError error) {
+ return (error != GMIME_SIGNATURE_ERROR_NONE);
+}
#else /* GMime >= 3.0 */
@@ -125,5 +139,32 @@ g_mime_message_get_reply_to_string (void *ctx, GMimeMessage *message)
return g_string_talloc_strdup (ctx, internet_address_list_to_string (list, NULL, 0));
}
+void
+g_mime_parser_set_scan_from (GMimeParser *parser, gboolean flag)
+{
+ g_mime_parser_set_format (parser, flag ? GMIME_FORMAT_MBOX : GMIME_FORMAT_MESSAGE);
+}
+
+/* In GMime 3.0, status GOOD and VALID both imply something about the
+ * validity of the UIDs attached to the signing key. This forces us to
+ * use following somewhat relaxed definition of a "good" signature to
+ * preserve current notmuch semantics.
+ */
+
+gboolean
+g_mime_signature_status_good (GMimeSignatureStatus status) {
+ return ((status & (GMIME_SIGNATURE_STATUS_RED | GMIME_SIGNATURE_STATUS_ERROR_MASK)) == 0);
+}
+
+gboolean
+g_mime_signature_status_bad (GMimeSignatureStatus status) {
+ return (status & GMIME_SIGNATURE_STATUS_RED);
+}
+
+gboolean
+g_mime_signature_status_error (GMimeSignatureStatus status) {
+ return (status & GMIME_SIGNATURE_STATUS_ERROR_MASK);
+}
+
#endif