SCCS-vsn: usr.sbin/sendmail/src/parseaddr.c 8.29
SCCS-vsn: usr.sbin/sendmail/src/usersmtp.c 8.17
cataddr(pvp, NULL, lbuf, sizeof lbuf, '\0');
define('g', lbuf, 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 <angle brackets> */
+ 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))
define('g', oldg, e);
if (tTd(12, 1))
-static char sccsid[] = "@(#)usersmtp.c 8.16 (Berkeley) %G% (with SMTP)";
+static char sccsid[] = "@(#)usersmtp.c 8.17 (Berkeley) %G% (with SMTP)";
-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 */
#endif
#endif /* not lint */
char buf[MAXNAME];
char optbuf[MAXLINE];
char buf[MAXNAME];
char optbuf[MAXLINE];
(void) strcpy(buf, "");
else
expand("\201g", buf, &buf[sizeof buf - 1], e);
(void) strcpy(buf, "");
else
expand("\201g", buf, &buf[sizeof buf - 1], e);
+ if (buf[0] == '<')
+ {
+ /* strip off <angle brackets> (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))
{
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,
}
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);
}
SmtpPhase = mci->mci_phase = "client MAIL";
setproctitle("%s %s: %s", e->e_id, CurHostName, mci->mci_phase);