Merge commit 'f4d091fbe1f4' into 4.next
[exim.git] / src / src / mime.h
1 /*************************************************
2 *     Exim - an Internet mail transport agent    *
3 *************************************************/
4
5 /* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004, 2015 */
6 /* License: GPL */
7
8 #ifdef WITH_CONTENT_SCAN
9
10 #define MIME_MAX_HEADER_SIZE 8192
11 #define MIME_MAX_LINE_LENGTH 32768
12
13 #define MBC_ATTACHMENT            0
14 #define MBC_COVERLETTER_ONESHOT   1
15 #define MBC_COVERLETTER_ALL       2
16
17 struct mime_boundary_context
18 {
19   struct mime_boundary_context *parent;
20   unsigned char *boundary;
21   int context;
22 };
23
24 typedef struct mime_header {
25   uschar *  name;
26   int       namelen;
27   uschar ** value;
28 } mime_header;
29
30 static mime_header mime_header_list[] = {
31   { US"content-type:",              13, &mime_content_type },
32   { US"content-disposition:",       20, &mime_content_disposition },
33   { US"content-transfer-encoding:", 26, &mime_content_transfer_encoding },
34   { US"content-id:",                11, &mime_content_id },
35   { US"content-description:",       20, &mime_content_description }
36 };
37
38 static int mime_header_list_size = sizeof(mime_header_list)/sizeof(mime_header);
39
40
41
42 typedef struct mime_parameter {
43   uschar *  name;
44   int       namelen;
45   uschar ** value;
46 } mime_parameter;
47
48 static mime_parameter mime_parameter_list[] = {
49   { US"name=",     5, &mime_filename },
50   { US"filename=", 9, &mime_filename },
51   { US"charset=",  8, &mime_charset  },
52   { US"boundary=", 9, &mime_boundary }
53 };
54
55
56 /* MIME Anomaly list */
57 #define MIME_ANOMALY_BROKEN_BASE64    1
58 #define MIME_ANOMALY_BROKEN_QP        0
59
60
61 #endif