143 const char *dsn_action =
"relayed";
164 dsn_action =
"delivered";
187 static int smtp_rcpt_cleanup_callback(
const void *a,
const void *b)
203 msg_panic(
"smtp_rcpt_cleanup: recipient count mismatch: %d+%d!=%d",
212 sizeof(rcpt_list->
info[0]), smtp_rcpt_cleanup_callback);
218 for (rcpt = rcpt_list->
info; rcpt < rcpt_list->info + state->
rcpt_left; rcpt++)
SMTP_ITERATOR iterator[1]
struct SMTP_SESSION * session
NORETURN msg_panic(const char *fmt,...)
DSN_BUF * dsb_update(DSN_BUF *dsb, const char *status, const char *action, const char *mtype, const char *mname, const char *dtype, const char *dtext, const char *format,...)
#define DEL_REQ_FLAG_SUCCESS
void deliver_completed(VSTREAM *stream, long offset)
DELIVER_REQUEST * request
void smtp_rcpt_done(SMTP_STATE *state, SMTP_RESP *resp, RECIPIENT *rcpt)
#define DEL_REQ_TRACE_FLAGS(f)
void smtp_rcpt_cleanup(SMTP_STATE *state)
#define DSN_FROM_DSN_BUF(dsb)
#define SMTP_RCPT_DROP(state, rcpt)
#define DSN_NOTIFY_SUCCESS
bool var_lmtp_assume_final
int sent(int flags, const char *id, MSG_STATS *stats, RECIPIENT *recipient, const char *relay, DSN *dsn)