15#include "libical_ical_export.h"
23 SSPM_IMAGE_MAJOR_TYPE,
24 SSPM_AUDIO_MAJOR_TYPE,
25 SSPM_VIDEO_MAJOR_TYPE,
26 SSPM_APPLICATION_MAJOR_TYPE,
27 SSPM_MULTIPART_MAJOR_TYPE,
28 SSPM_MESSAGE_MAJOR_TYPE,
29 SSPM_UNKNOWN_MAJOR_TYPE
36 SSPM_PLAIN_MINOR_TYPE,
37 SSPM_RFC822_MINOR_TYPE,
38 SSPM_DIGEST_MINOR_TYPE,
39 SSPM_CALENDAR_MINOR_TYPE,
40 SSPM_MIXED_MINOR_TYPE,
41 SSPM_RELATED_MINOR_TYPE,
42 SSPM_ALTERNATIVE_MINOR_TYPE,
43 SSPM_PARALLEL_MINOR_TYPE,
44 SSPM_UNKNOWN_MINOR_TYPE
50 SSPM_QUOTED_PRINTABLE_ENCODING,
61 SSPM_UNEXPECTED_BOUNDARY_ERROR,
62 SSPM_WRONG_BOUNDARY_ERROR,
63 SSPM_NO_BOUNDARY_ERROR,
65 SSPM_MALFORMED_HEADER_ERROR
71 enum sspm_major_type major;
72 enum sspm_minor_type minor;
74 char **content_type_params;
76 enum sspm_encoding encoding;
79 enum sspm_error error;
91 enum sspm_major_type major;
92 enum sspm_minor_type minor;
93 void *(*new_part)(void);
94 void (*add_line)(
void *part,
struct sspm_header *header,
const char *line,
size_t size);
95 void *(*end_part)(
void *part);
96 void (*free_part)(
void *part);
99LIBICAL_ICAL_EXPORT
const char *sspm_major_type_string(
enum sspm_major_type type);
101LIBICAL_ICAL_EXPORT
const char *sspm_minor_type_string(
enum sspm_minor_type type);
103LIBICAL_ICAL_EXPORT
const char *sspm_encoding_string(
enum sspm_encoding type);
105LIBICAL_ICAL_EXPORT
int sspm_parse_mime(
struct sspm_part *parts,
108 char *(*get_string)(
char *s,
size_t size,
void *data),
109 void *get_string_data,
struct sspm_header *first_header);
111LIBICAL_ICAL_EXPORT
void sspm_free_parts(
struct sspm_part *parts,
size_t max_parts);
113LIBICAL_ICAL_EXPORT
char *decode_quoted_printable(
char *dest,
char *src,
size_t *size);
115LIBICAL_ICAL_EXPORT
char *decode_base64(
char *dest,
char *src,
size_t *size);
117LIBICAL_ICAL_EXPORT
void sspm_write_mime(
struct sspm_part *parts,
size_t num_parts,
118 char **output_string,
const char *header);