3022b18704ac8ced0a7eb4e1336221239a3c71c8
[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