diff options
| author | Sam Varshavchik | 2018-07-28 20:30:26 -0400 |
|---|---|---|
| committer | Sam Varshavchik | 2018-07-28 20:30:26 -0400 |
| commit | fcbfc271d28b6c7eb491209a442bca23ecb647dc (patch) | |
| tree | 2f165a261d4f1038bd268681a0d224d0a9264c20 /rfc2045 | |
| parent | dbe3a66c244380067a1f22cd3368b1233fac78df (diff) | |
| download | courier-libs-fcbfc271d28b6c7eb491209a442bca23ecb647dc.tar.bz2 | |
sqwebmail: format UTF8 delivery status notifications
Diffstat (limited to 'rfc2045')
| -rw-r--r-- | rfc2045/rfc2045.c | 34 | ||||
| -rw-r--r-- | rfc2045/rfc2045.h | 16 |
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) |
