1 /*************************************************
2 * Exim - an Internet mail transport agent *
3 *************************************************/
5 /* Copyright (c) Tom Kistner <tom@duncanthrax.net> 2004, 2015 */
8 #ifdef WITH_CONTENT_SCAN
10 #define MIME_MAX_HEADER_SIZE 8192
11 #define MIME_MAX_LINE_LENGTH 32768
13 #define MBC_ATTACHMENT 0
14 #define MBC_COVERLETTER_ONESHOT 1
15 #define MBC_COVERLETTER_ALL 2
17 struct mime_boundary_context
19 struct mime_boundary_context
*parent
;
20 unsigned char *boundary
;
24 typedef struct mime_header
{
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
}
38 static int mime_header_list_size
= sizeof(mime_header_list
)/sizeof(mime_header
);
42 typedef struct mime_parameter
{
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
}
56 /* MIME Anomaly list */
57 #define MIME_ANOMALY_BROKEN_BASE64 1
58 #define MIME_ANOMALY_BROKEN_QP 0