91 const char *myname =
"bounce_workaround";
99 char *stripped_recipient;
101 const char *owner_expansion;
103 #define FIND_OWNER(lhs, rhs, addr) { \
104 lhs = concatenate("owner-", addr, (char *) 0); \
105 (void) split_at_right(lhs, '@'); \
106 rhs = maps_find(alias_maps, lhs, DICT_FLAG_NONE); \
115 FIND_OWNER(owner_alias, owner_expansion, stripped_recipient);
116 myfree(stripped_recipient);
121 owner_expansion : owner_alias);
128 "alias database unavailable");
#define BOUNCE_ATTR(attr)
#define SET_OWNER_ATTR(msg_attr, who, level)
#define BOUNCE_ONE_ATTR(attr)
VSTRING * canon_addr_internal(VSTRING *result, const char *addr)
DELIVER_REQUEST * request
#define BOUNCE_FLAGS(request)
int bounce_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
int bounce_one(int flags, const char *queue, const char *id, const char *encoding, int smtputf8, const char *sender, const char *dsn_envid, int dsn_ret, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
int defer_one(int flags, const char *queue, const char *id, const char *encoding, int smtputf8, const char *sender, const char *dsn_envid, int dsn_ret, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
VSTRING * vstring_alloc(ssize_t len)
DSN_BUF * dsb_simple(DSN_BUF *dsb, const char *status, const char *format,...)
#define FIND_OWNER(lhs, rhs, addr)
int bounce_workaround(LOCAL_STATE state)
VSTRING * vstring_free(VSTRING *vp)
int defer_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)