]> git.ipfire.org Git - thirdparty/dovecot/core.git/commitdiff
fts: Support also RFC 2231 style parsing when finding the attachment filename.
authorTimo Sirainen <tss@iki.fi>
Thu, 22 Sep 2011 21:04:11 +0000 (00:04 +0300)
committerTimo Sirainen <tss@iki.fi>
Thu, 22 Sep 2011 21:04:11 +0000 (00:04 +0300)
src/plugins/fts/fts-parser-script.c

index 3781e566eabae6c9e7e57582c70b2750561bd0f1..955d973df3e02417c12b710483b4ec92dc90eaff 100644 (file)
@@ -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;
        }
 }