summaryrefslogtreecommitdiffstats
path: root/rfc2045
diff options
context:
space:
mode:
authorSam Varshavchik2018-07-28 20:30:26 -0400
committerSam Varshavchik2018-07-28 20:30:26 -0400
commitfcbfc271d28b6c7eb491209a442bca23ecb647dc (patch)
tree2f165a261d4f1038bd268681a0d224d0a9264c20 /rfc2045
parentdbe3a66c244380067a1f22cd3368b1233fac78df (diff)
downloadcourier-libs-fcbfc271d28b6c7eb491209a442bca23ecb647dc.tar.bz2
sqwebmail: format UTF8 delivery status notifications
Diffstat (limited to 'rfc2045')
-rw-r--r--rfc2045/rfc2045.c34
-rw-r--r--rfc2045/rfc2045.h16
2 files changed, 47 insertions, 3 deletions
diff --git a/rfc2045/rfc2045.c b/rfc2045/rfc2045.c
index 40c2017..4e62e39 100644
--- a/rfc2045/rfc2045.c
+++ b/rfc2045/rfc2045.c
@@ -1,5 +1,5 @@
/*
-** Copyright 1998 - 2004 Double Precision, Inc. See COPYING for
+** Copyright 1998 - 2018 Double Precision, Inc. See COPYING for
** distribution information.
*/
@@ -621,7 +621,7 @@ int bit8=0;
*/
if (p->content_type &&
- strcmp(p->content_type, "message/rfc822") == 0)
+ rfc2045_message_content_type(p->content_type))
{
newp=append_part_noinherit(p, p->startbody);
newp->workinheader=1;
@@ -737,6 +737,36 @@ char *p;
return (p);
}
+/*
+** Whether this MIME content type is a nested MIME message.
+*/
+
+int rfc2045_message_content_type(const char *content_type)
+{
+ return strcmp(content_type, RFC2045_MIME_MESSAGE_RFC822) == 0 ||
+ strcmp(content_type, RFC2045_MIME_MESSAGE_GLOBAL) == 0;
+}
+
+/*
+** Whether this MIME content type is a delivery status notification.
+*/
+
+int rfc2045_delivery_status_content_type(const char *content_type)
+{
+ return strcmp(content_type,
+ RFC2045_MIME_MESSAGE_DELIVERY_STATUS) == 0 ||
+ strcmp(content_type,
+ RFC2045_MIME_MESSAGE_GLOBAL_DELIVERY_STATUS) == 0;
+}
+
+int rfc2045_message_headers_content_type(const char *content_type)
+{
+ return strcmp(content_type,
+ RFC2045_MIME_MESSAGE_HEADERS) == 0 ||
+ strcmp(content_type,
+ RFC2045_MIME_MESSAGE_GLOBAL_HEADERS) == 0;
+}
+
/* Various permutations of the above, including forcing the string to
** lowercase
*/
diff --git a/rfc2045/rfc2045.h b/rfc2045/rfc2045.h
index 87773d9..4abdf2c 100644
--- a/rfc2045/rfc2045.h
+++ b/rfc2045/rfc2045.h
@@ -1,5 +1,5 @@
/*
-** Copyright 1998 - 2011 Double Precision, Inc. See COPYING for
+** Copyright 1998 - 2018 Double Precision, Inc. See COPYING for
** distribution information.
*/
@@ -22,6 +22,20 @@ extern "C" {
}
#endif
+#define RFC2045_MIME_MESSAGE_RFC822 "message/rfc822"
+#define RFC2045_MIME_MESSAGE_GLOBAL "message/global"
+
+#define RFC2045_MIME_MESSAGE_DELIVERY_STATUS "message/delivery-status"
+#define RFC2045_MIME_MESSAGE_GLOBAL_DELIVERY_STATUS \
+ "message/global-delivery-status"
+
+#define RFC2045_MIME_MESSAGE_HEADERS "message/rfc822-headers"
+#define RFC2045_MIME_MESSAGE_GLOBAL_HEADERS "message/global-headers"
+
+int rfc2045_message_content_type(const char *);
+int rfc2045_delivery_status_content_type(const char *);
+int rfc2045_message_headers_content_type(const char *);
+
#define RFC2045_ISMIME1(p) ((p) && atoi(p) == 1)
#define RFC2045_ISMIME1DEF(p) (!(p) || atoi(p) == 1)