107 rcpt,
"none", dsn) != 0) {
116 DSN *dsn,
int verify_status)
121 rcpt,
"none", dsn, verify_status) != 0) {
130 const char *dsn_orcpt,
154 #define STREQ(x, y) (strcmp((x), (y)) == 0)
160 dsn_orcpt, dsn_notify, orcpt, recip) :
231 (void)
DSN_SIMPLE(&dsn,
"2.0.0",
"aliased to multiple recipients");
232 dsn.
action =
"deliverable";
239 && (argv->
argc > 1 || strcmp(recip, argv->
argv[0]) != 0)) {
240 (void)
DSN_SIMPLE(&dsn,
"2.0.0",
"alias expanded");
243 cleanup_trace_append(state, &rcpt, &dsn);
245 dsn_notify & ~DSN_NOTIFY_SUCCESS);
247 for (cpp = argv->
argv; *cpp; cpp++) {
250 dsn_orcpt, dsn_notify, orcpt, *cpp) :
#define MAIL_ATTR_DSN_NOTIFY
void cleanup_out_format(CLEANUP_STATE *state, int type, const char *fmt,...)
VSTRING * cleanup_trace_path
MAPS * cleanup_virt_alias_maps
ARGV * argv_free(ARGV *argvp)
#define DSN_SIMPLE(dsn, _status, _reason)
#define CLEANUP_FLAG_MAP_OK
ARGV * cleanup_map1n_internal(CLEANUP_STATE *, const char *, MAPS *, int)
int trace_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
#define RECIPIENT_ASSIGN(rcpt, offs, orcpt, notify, orig, addr)
#define BOUNCE_FLAG_CLEAN
int cleanup_ext_prop_mask
const char * mail_queue_path(VSTRING *buf, const char *queue_name, const char *queue_id)
#define MAIL_ATTR_DSN_ORCPT
int verify_append(const char *queue_id, MSG_STATS *stats, RECIPIENT *recipient, const char *relay, DSN *dsn, int vrfy_stat)
int been_here(BH_TABLE *dup_filter, const char *fmt,...)
void msg_warn(const char *fmt,...)
VSTRING * vstring_alloc(ssize_t len)
void cleanup_out_recipient(CLEANUP_STATE *state, const char *dsn_orcpt, int dsn_notify, const char *orcpt, const char *recip)
#define CLEANUP_MSG_STATS(stats, state)
#define DSN_NOTIFY_SUCCESS
int been_here_fixed(BH_TABLE *dup_filter, const char *string)
#define CLEANUP_STAT_WRITE
void cleanup_out_string(CLEANUP_STATE *, int, const char *)
#define DEL_REQ_FLAG_MTA_VRFY