/* rfc822 header parameters */
/****************************************************************************/
-typedef struct parameter_t {
- struct parameter_t *next;
- char *attribute;
- char *value;
-} parameter_t;
-
-DO_INIT(parameter_t, parameter);
-static inline void parameter_wipe(parameter_t *param) {
- p_delete(¶m->attribute);
- p_delete(¶m->value);
-}
+typedef struct parameters_t parameters_t;
-DO_NEW(parameter_t, parameter);
-DO_DELETE(parameter_t, parameter);
-DO_SLIST(parameter_t, parameter, parameter_delete);
+parameters_t *parameter_new();
+parameters_t *parameter_dup(parameters_t *);
+char *parameter_getval(parameters_t *, const char *);
+void parameter_setval(parameters_t *, const char *, const char *);
+void parameter_delval(parameters_t * p, const char *);
+void parameter_set_boundary(parameters_t *);
+void parameter_purge_empty(parameters_t *);
-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 parameters_t *, const parameters_t *);
-int parameter_equal(const parameter_t *, const parameter_t *);
+void parameter_foreach(const parameters_t *,
+ void (*f)(const char *, const char *));
/****************************************************************************/
/* rfc822 envelopes */
char *date;
char *x_label;
char *organization;
-#ifdef USE_NNTP
- char *newsgroups;
- char *xref;
- char *followup_to;
-#endif
BUFFER *spam;
string_list_t *references; /* message references (in reverse order) */
string_list_t *in_reply_to; /* in-reply-to header content */
char *xtype; /* content-type if x-unknown */
char *subtype; /* content-type subtype */
- parameter_t *parameter; /* parameters of the content-type */
+ parameters_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.
ENVELOPE *env; /* envelope information */
BODY *content; /* list of MIME parts */
char *path;
-#ifdef USE_NNTP
- int article_num;
-#endif
char *tree; /* character string to print thread tree */
struct thread *thread;
short attach_total;
- string_list_t *chain;
-
int refno; /* message number on server */
void *data; /* driver-specific data */