#ifndef _RECIPIENT_LIST_H_INCLUDED_
#define _RECIPIENT_LIST_H_INCLUDED_
typedef struct RECIPIENT {
long offset;
const char *dsn_orcpt;
int dsn_notify;
const char *orig_addr;
const char *address;
union {
int status;
struct QMGR_QUEUE *queue;
const char *addr_type;
} u;
} RECIPIENT;
#define RECIPIENT_ASSIGN(rcpt, offs, orcpt, notify, orig, addr) do { \
(rcpt)->offset = (offs); \
(rcpt)->dsn_orcpt = (orcpt); \
(rcpt)->dsn_notify = (notify); \
(rcpt)->orig_addr = (orig); \
(rcpt)->address = (addr); \
(rcpt)->u.status = (0); \
} while (0)
#define RECIPIENT_UPDATE(ptr, new) do { \
myfree((char *) (ptr)); (ptr) = mystrdup(new); \
} while (0)
typedef struct RECIPIENT_LIST {
RECIPIENT *info;
int len;
int avail;
int variant;
} RECIPIENT_LIST;
extern void recipient_list_init(RECIPIENT_LIST *, int);
extern void recipient_list_add(RECIPIENT_LIST *, long, const char *, int, const char *, const char *);
extern void recipient_list_swap(RECIPIENT_LIST *, RECIPIENT_LIST *);
extern void recipient_list_free(RECIPIENT_LIST *);
#define RCPT_LIST_INIT_STATUS 1
#define RCPT_LIST_INIT_QUEUE 2
#define RCPT_LIST_INIT_ADDR 3
#endif