/****************************************************************************/
typedef struct address_t {
+ struct address_t *next;
char *personal; /* real name of address */
char *mailbox; /* mailbox and host address */
int group; /* group mailbox? */
- struct address_t *next;
} address_t;
DO_INIT(address_t, address);
/* rfc822 header parameters */
/****************************************************************************/
-typedef struct parameter {
+typedef struct parameter_t {
+ struct parameter_t *next;
char *attribute;
char *value;
- struct parameter *next;
-} PARAMETER;
+} parameter_t;
-DO_INIT(PARAMETER, parameter);
-static inline void parameter_wipe(PARAMETER *param) {
+DO_INIT(parameter_t, parameter);
+static inline void parameter_wipe(parameter_t *param) {
p_delete(¶m->attribute);
p_delete(¶m->value);
}
-DO_NEW(PARAMETER, parameter);
-DO_DELETE(PARAMETER, parameter);
-DO_SLIST(PARAMETER, parameter, parameter_delete);
+DO_NEW(parameter_t, parameter);
+DO_DELETE(parameter_t, parameter);
+DO_SLIST(parameter_t, parameter, parameter_delete);
+
+char *parameter_getval(parameter_t *, const char *);
+void parameter_setval(parameter_t **, const char *, const char *);
+void parameter_delval(parameter_t ** p, const char *);
+void parameter_set_boundary(parameter_t **);
+int parameter_equal(const parameter_t *, const parameter_t *);
/****************************************************************************/
/* rfc822 envelopes */
typedef struct body {
char *xtype; /* content-type if x-unknown */
char *subtype; /* content-type subtype */
- PARAMETER *parameter; /* parameters of the content-type */
+ parameter_t *parameter; /* parameters of the content-type */
char *description; /* content-description */
char *form_name; /* Content-Disposition form-data name param */
off_t hdr_offset; /* offset in stream where the headers begin.