summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgilles <gilles@openbsd.org>2019-02-06 07:45:43 +0000
committergilles <gilles@openbsd.org>2019-02-06 07:45:43 +0000
commit8bef9f7ce4fa43bc18fa10f726bb17a2d462cbf3 (patch)
tree88e6431cc777800d8e397eb250b1ce2d5620d6d4
parentAdd -b to display-panes like run-shell, GitHub issue 1559. (diff)
downloadwireguard-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.c19
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;