diff options
author | 2019-02-06 07:45:43 +0000 | |
---|---|---|
committer | 2019-02-06 07:45:43 +0000 | |
commit | 8bef9f7ce4fa43bc18fa10f726bb17a2d462cbf3 (patch) | |
tree | 88e6431cc777800d8e397eb250b1ce2d5620d6d4 | |
parent | Add -b to display-panes like run-shell, GitHub issue 1559. (diff) | |
download | wireguard-openbsd-8bef9f7ce4fa43bc18fa10f726bb17a2d462cbf3.tar.xz wireguard-openbsd-8bef9f7ce4fa43bc18fa10f726bb17a2d462cbf3.zip |
in SMTP status, display rcpt address in errors happening at RCPT level
ok millert@, sunil@
-rw-r--r-- | usr.sbin/smtpd/smtp_session.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/usr.sbin/smtpd/smtp_session.c b/usr.sbin/smtpd/smtp_session.c index d9f2dd56064..166418782a9 100644 --- a/usr.sbin/smtpd/smtp_session.c +++ b/usr.sbin/smtpd/smtp_session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: smtp_session.c,v 1.387 2019/01/05 09:43:39 gilles Exp $ */ +/* $OpenBSD: smtp_session.c,v 1.388 2019/02/06 07:45:43 gilles Exp $ */ /* * Copyright (c) 2008 Gilles Chehade <gilles@poolp.org> @@ -686,6 +686,7 @@ smtp_session_imsg(struct mproc *p, struct imsg *imsg) struct smtp_session *s; struct smtp_rcpt *rcpt; char user[LOGIN_NAME_MAX]; + char tmp[SMTP_LINE_MAX]; struct msg m; const char *line, *helo; uint64_t reqid, evpid; @@ -727,14 +728,26 @@ smtp_session_imsg(struct mproc *p, struct imsg *imsg) m_get_string(&m, &line); m_end(&m); s = tree_xpop(&wait_lka_rcpt, reqid); + + tmp[0] = '\0'; + if (s->tx->evp.rcpt.user[0]) { + (void)strlcpy(tmp, s->tx->evp.rcpt.user, sizeof tmp); + if (s->tx->evp.rcpt.domain[0]) { + (void)strlcat(tmp, "@", sizeof tmp); + (void)strlcat(tmp, s->tx->evp.rcpt.domain, + sizeof tmp); + } + } + switch (status) { case LKA_OK: fatalx("unexpected ok"); case LKA_PERMFAIL: - smtp_reply(s, "%s", line); + smtp_reply(s, "%s: <%s>", line, tmp); break; case LKA_TEMPFAIL: - smtp_reply(s, "%s", line); + smtp_reply(s, "%s: <%s>", line, tmp); + break; } return; |