diff options
Diffstat (limited to 'pigeonhole/src/lib-sieve/util/rfc2822.h')
-rw-r--r-- | pigeonhole/src/lib-sieve/util/rfc2822.h | 46 |
1 files changed, 46 insertions, 0 deletions
diff --git a/pigeonhole/src/lib-sieve/util/rfc2822.h b/pigeonhole/src/lib-sieve/util/rfc2822.h new file mode 100644 index 0000000..02266a9 --- /dev/null +++ b/pigeonhole/src/lib-sieve/util/rfc2822.h @@ -0,0 +1,46 @@ +#ifndef RFC2822_H +#define RFC2822_H + +#include "lib.h" + +#include <stdio.h> + +/* + * Verification + */ + +bool rfc2822_header_field_name_verify + (const char *field_name, unsigned int len); +bool rfc2822_header_field_body_verify + (const char *field_body, unsigned int len, bool allow_crlf, bool allow_utf8); + +/* + * + */ + +const char *rfc2822_header_field_name_sanitize(const char *name); + +/* + * Message composition + */ + +unsigned int rfc2822_header_append + (string_t *header, const char *name, const char *body, bool crlf, + uoff_t *body_offset_r); + +static inline void rfc2822_header_write +(string_t *header, const char *name, const char *body) +{ + (void)rfc2822_header_append(header, name, body, TRUE, NULL); +} + +void rfc2822_header_printf + (string_t *header, const char *name, const char *fmt, ...) ATTR_FORMAT(3, 4); +void rfc2822_header_utf8_printf + (string_t *header, const char *name, const char *fmt, ...) ATTR_FORMAT(3, 4); + +void rfc2822_header_write_address(string_t *header, + const char *name, const char *address); + + +#endif |