From: Timo Sirainen Date: Thu, 22 Sep 2011 21:04:11 +0000 (+0300) Subject: fts: Support also RFC 2231 style parsing when finding the attachment filename. X-Git-Tag: 2.1.beta1~134 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c87e04390d86da2edc1e145da27a84e0aae91b09;p=thirdparty%2Fdovecot%2Fcore.git fts: Support also RFC 2231 style parsing when finding the attachment filename. --- diff --git a/src/plugins/fts/fts-parser-script.c b/src/plugins/fts/fts-parser-script.c index 3781e566ea..955d973df3 100644 --- a/src/plugins/fts/fts-parser-script.c +++ b/src/plugins/fts/fts-parser-script.c @@ -152,7 +152,7 @@ static void parse_content_disposition(const char *content_disposition, const char **filename_r) { struct rfc822_parser_context parser; - const char *const *results; + const char *const *results, *filename2; string_t *str; *filename_r = NULL; @@ -170,11 +170,19 @@ static void parse_content_disposition(const char *content_disposition, return; (void)rfc2231_parse(&parser, &results); + filename2 = NULL; for (; *results != NULL; results += 2) { if (strcasecmp(results[0], "filename") == 0) { *filename_r = results[1]; break; } + if (strcasecmp(results[0], "filename*") == 0) + filename2 = results[1]; + } + if (*filename_r == NULL) { + /* RFC 2231 style non-ascii filename. we don't really care + much about the filename actually, just about its extension */ + *filename_r = filename2; } }