88 const char *myname =
"deliver_resolve_tree";
125 "bad recipient address syntax: %s",
STR(reply.
recipient));
135 if ((ratsign = strrchr(
STR(reply.
recipient),
'@')) == 0) {
141 if ((ratsign = strrchr(
STR(reply.
recipient),
'@')) == 0)
142 msg_panic(
"%s: recipient @ botch", myname);
143 memmove(ratsign + ext_len + 1, ratsign, strlen(ratsign) + 1);
144 *ratsign = rcpt_delim;
#define RESOLVE_FLAG_FAIL
#define BOUNCE_ATTR(attr)
int deliver_indirect(LOCAL_STATE state)
NORETURN msg_panic(const char *fmt,...)
void resolve_clnt_free(RESOLVE_REPLY *reply)
DELIVER_REQUEST * request
int deliver_recipient(LOCAL_STATE, USER_ATTR)
#define BOUNCE_FLAGS(request)
TOK822 * tok822_free_tree(TOK822 *)
int bounce_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
#define VSTRING_ADDCH(vp, ch)
#define tok822_resolve(t, r)
#define RESOLVE_FLAG_ERROR
void resolve_clnt_init(RESOLVE_REPLY *reply)
DSN_BUF * dsb_simple(DSN_BUF *dsb, const char *status, const char *format,...)
#define VSTRING_SPACE(vp, len)
TOK822 * tok822_scan_addr(const char *)
int defer_append(int flags, const char *id, MSG_STATS *stats, RECIPIENT *rcpt, const char *relay, DSN *dsn)
int deliver_resolve_addr(LOCAL_STATE state, USER_ATTR usr_attr, char *addr)
#define MSG_LOG_STATE(m, p)
TOK822 * tok822_rewrite(TOK822 *, const char *)
VSTRING * vstring_strcat(VSTRING *vp, const char *src)
int deliver_resolve_tree(LOCAL_STATE state, USER_ATTR usr_attr, TOK822 *addr)