1 #ifndef RFC2822_H
2 #define RFC2822_H
3
4 #include "lib.h"
5
6 #include <stdio.h>
7
8 /*
9 * Verification
10 */
11
12 bool rfc2822_header_field_name_verify
13 (const char *field_name, unsigned int len);
14 bool rfc2822_header_field_body_verify
15 (const char *field_body, unsigned int len, bool allow_crlf, bool allow_utf8);
16
17 /*
18 *
19 */
20
21 const char *rfc2822_header_field_name_sanitize(const char *name);
22
23 /*
24 * Message composition
25 */
26
27 unsigned int rfc2822_header_append
28 (string_t *header, const char *name, const char *body, bool crlf,
29 uoff_t *body_offset_r);
30
rfc2822_header_write(string_t * header,const char * name,const char * body)31 static inline void rfc2822_header_write
32 (string_t *header, const char *name, const char *body)
33 {
34 (void)rfc2822_header_append(header, name, body, TRUE, NULL);
35 }
36
37 void rfc2822_header_printf
38 (string_t *header, const char *name, const char *fmt, ...) ATTR_FORMAT(3, 4);
39 void rfc2822_header_utf8_printf
40 (string_t *header, const char *name, const char *fmt, ...) ATTR_FORMAT(3, 4);
41
42 void rfc2822_header_write_address(string_t *header,
43 const char *name, const char *address);
44
45
46 #endif
47