+DO_INIT(address_t, address);
+static inline void address_wipe(address_t *addr) {
+ p_delete(&addr->personal);
+ p_delete(&addr->mailbox);
+}
+
+DO_NEW(address_t, address);
+DO_DELETE(address_t, address);
+DO_SLIST(address_t, address, address_delete);
+
+/****************************************************************************/
+/* rfc822 header parameters */
+/****************************************************************************/
+
+typedef struct parameter {
+ char *attribute;
+ char *value;
+ struct parameter *next;
+} PARAMETER;
+
+DO_INIT(PARAMETER, parameter);
+static inline void parameter_wipe(PARAMETER *param) {
+ p_delete(¶m->attribute);
+ p_delete(¶m->value);
+}
+
+DO_NEW(PARAMETER, parameter);
+DO_DELETE(PARAMETER, parameter);
+DO_SLIST(PARAMETER, parameter, parameter_delete);
+
+
+/****************************************************************************/
+/* rfc822 envelopes */
+/****************************************************************************/
+