From: Eric Allman Date: Thu, 6 Jan 1994 01:20:11 +0000 (-0800) Subject: try to make sure that path-addrs always have X-Git-Tag: BSD-4_4_Lite1-Snapshot-Development~959 X-Git-Url: https://git.subgeniuskitty.com/unix-history/.git/commitdiff_plain/61fabf2ef98d77de1a411134197d84d26e7034c2 try to make sure that path-addrs always have SCCS-vsn: usr.sbin/sendmail/src/parseaddr.c 8.29 SCCS-vsn: usr.sbin/sendmail/src/usersmtp.c 8.17 --- diff --git a/usr/src/usr.sbin/sendmail/src/parseaddr.c b/usr/src/usr.sbin/sendmail/src/parseaddr.c index 0af8bb64fd..6800d55a98 100644 --- a/usr/src/usr.sbin/sendmail/src/parseaddr.c +++ b/usr/src/usr.sbin/sendmail/src/parseaddr.c @@ -2048,7 +2048,13 @@ remotename(name, m, flags, pstat, e) cataddr(pvp, NULL, lbuf, sizeof lbuf, '\0'); define('g', lbuf, e); - expand(fancy, buf, &buf[sizeof buf - 1], e); + + /* need to make sure route-addrs have */ + if (bitset(RF_CANONICAL, flags) && lbuf[0] == '@') + expand("<\201g>", buf, &buf[sizeof buf - 1], e); + else + expand(fancy, buf, &buf[sizeof buf - 1], e); + define('g', oldg, e); if (tTd(12, 1)) diff --git a/usr/src/usr.sbin/sendmail/src/usersmtp.c b/usr/src/usr.sbin/sendmail/src/usersmtp.c index c5c6ee7168..42262d4958 100644 --- a/usr/src/usr.sbin/sendmail/src/usersmtp.c +++ b/usr/src/usr.sbin/sendmail/src/usersmtp.c @@ -10,9 +10,9 @@ #ifndef lint #ifdef SMTP -static char sccsid[] = "@(#)usersmtp.c 8.16 (Berkeley) %G% (with SMTP)"; +static char sccsid[] = "@(#)usersmtp.c 8.17 (Berkeley) %G% (with SMTP)"; #else -static char sccsid[] = "@(#)usersmtp.c 8.16 (Berkeley) %G% (without SMTP)"; +static char sccsid[] = "@(#)usersmtp.c 8.17 (Berkeley) %G% (without SMTP)"; #endif #endif /* not lint */ @@ -296,6 +296,7 @@ smtpmailfrom(m, mci, e) ENVELOPE *e; { int r; + char *bufp; char buf[MAXNAME]; char optbuf[MAXLINE]; @@ -328,15 +329,25 @@ smtpmailfrom(m, mci, e) (void) strcpy(buf, ""); else expand("\201g", buf, &buf[sizeof buf - 1], e); + if (buf[0] == '<') + { + /* strip off (put back on below) */ + bufp = &buf[strlen(buf) - 1]; + if (*bufp == '>') + *bufp = '\0'; + bufp = &buf[1]; + } + else + bufp = buf; if (e->e_from.q_mailer == LocalMailer || !bitnset(M_FROMPATH, m->m_flags)) { - smtpmessage("MAIL From:<%s>%s", m, mci, buf, optbuf); + smtpmessage("MAIL From:<%s>%s", m, mci, bufp, optbuf); } else { smtpmessage("MAIL From:<@%s%c%s>%s", m, mci, MyHostName, - buf[0] == '@' ? ',' : ':', buf, optbuf); + *bufp == '@' ? ',' : ':', bufp, optbuf); } SmtpPhase = mci->mci_phase = "client MAIL"; setproctitle("%s %s: %s", e->e_id, CurHostName, mci->mci_phase);