/*
* Primary structure for handling Content (Entity)
+ *
+ * Some more explanation of this:
+ *
+ * This structure recursively describes a complete MIME message.
+ * At the top level, the c_first_hf list has a list of all message
+ * headers. If the content-type is multipart (c_type == CT_MULTIPART)
+ * then c_ctparams will contain a pointer to a struct multipart.
+ * A struct multipart contains (among other trhings) a linked list
+ * of struct part elements, and THOSE contain a pointer to the sub-part's
+ * Content structure.
*/
struct Content {
/* source (read) file */
int c_subtype; /* internal flag for content subtype */
/* Content-Transfer-Encoding info (decoded contents) */
- CE c_cefile; /* structure holding decoded content */
+ struct cefile c_cefile; /* structure holding decoded content */
int c_encoding; /* internal flag for encoding type */
/* Content-MD5 info */
struct multipart {
char *mp_start; /* boundary string separating parts */
char *mp_stop; /* terminating boundary string */
+ char *mp_content_before; /* any content before the first subpart */
+ char *mp_content_after; /* any content after the last subpart */
struct part *mp_parts; /* pointer to first subpart structure */
};
char *eb_server;
char *eb_subject;
char *eb_body;
+ char *eb_url;
};
/*
*/
int pidcheck (int);
CT parse_mime (char *);
+
+/*
+ * Translate a composition file into a MIME data structure. Arguments are:
+ *
+ * infile - Name of input filename
+ * directives - A flag to control whether or not build directives are
+ * processed by default.
+ * encoding - The default encoding to use when doing RFC 2047 header
+ * encoding. Must be one of CE_UNKNOWN, CE_BASE64, or
+ * CE_QUOTED;
+ *
+ * Returns a CT structure describing the resulting MIME message.
+ */
+CT build_mime (char *infile, int directives, int encoding);
+
int add_header (CT, char *, char *);
-int get_ctinfo (unsigned char *, CT, int);
+int get_ctinfo (char *, CT, int);
int params_external (CT, int);
int open7Bit (CT, char **);
void close_encoding (CT);
+void free_content (CT);
+char *ct_type_str (int);
+char *ct_subtype_str (int, int);
+const struct str2init *get_ct_init (int);
+const char *ce_str (int);
+const struct str2init *get_ce_method (const char *);
+int parse_header_attrs (const char *, int, char **, CI, int *);
extern int checksw; /* Add Content-MD5 field */