From 513d97f3f28762d3bf589223985444b9d221e1f6 Mon Sep 17 00:00:00 2001 From: Eric Allman Date: Fri, 26 May 1995 14:50:03 -0800 Subject: [PATCH] add -q map flag to avoid quote stripping; clean up domain addition in nis_getcanonname and nisplus_getcanonname SCCS-vsn: usr.sbin/sendmail/src/parseaddr.c 8.69 SCCS-vsn: usr.sbin/sendmail/src/map.c 8.68 --- usr/src/usr.sbin/sendmail/src/map.c | 34 +++++++++++++++++++---- usr/src/usr.sbin/sendmail/src/parseaddr.c | 2 +- 2 files changed, 30 insertions(+), 6 deletions(-) diff --git a/usr/src/usr.sbin/sendmail/src/map.c b/usr/src/usr.sbin/sendmail/src/map.c index e4bc8e6e33..e2e01aac27 100644 --- a/usr/src/usr.sbin/sendmail/src/map.c +++ b/usr/src/usr.sbin/sendmail/src/map.c @@ -7,7 +7,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)map.c 8.67 (Berkeley) %G%"; +static char sccsid[] = "@(#)map.c 8.68 (Berkeley) %G%"; #endif /* not lint */ #include "sendmail.h" @@ -124,6 +124,10 @@ map_parseargs(map, ap) map->map_mflags |= MF_APPEND; break; + case 'q': + map->map_mflags |= MF_KEEPQUOTES; + break; + case 'a': map->map_app = ++p; break; @@ -1254,9 +1258,22 @@ nis_getcanonname(name, hbsize, statp) return FALSE; } - if (hbsize >= strlen(cname)) + if (strchr(cname, '.') != NULL) { - strcpy(name, cname); + domain = ""; + } + else + { + domain = macvalue('m', CurEnv); + if (domain == NULL) + domain = ""; + } + if (hbsize >= strlen(cname) + strlen(domain) + 1) + { + if (domain[0] == '\0') + strcpy(name, vp); + else + sprintf(name, "%s.%s", vp, domain); *statp = EX_OK; return TRUE; } @@ -1607,9 +1624,16 @@ nisplus_getcanonname(name, hbsize, statp) if (tTd(38, 20)) printf("nisplus_getcanonname(%s), found %s\n", name, vp); - domain = macvalue('m', CurEnv); - if (domain == NULL) + if (strchr(vp, '.') != NULL) + { domain = ""; + } + else + { + domain = macvalue('m', CurEnv); + if (domain == NULL) + domain = ""; + } if (hbsize > vsize + (int) strlen(domain) + 1) { if (domain[0] == '\0') diff --git a/usr/src/usr.sbin/sendmail/src/parseaddr.c b/usr/src/usr.sbin/sendmail/src/parseaddr.c index e0db3298a1..5396fd4040 100644 --- a/usr/src/usr.sbin/sendmail/src/parseaddr.c +++ b/usr/src/usr.sbin/sendmail/src/parseaddr.c @@ -7,7 +7,7 @@ */ #ifndef lint -static char sccsid[] = "@(#)parseaddr.c 8.68 (Berkeley) %G%"; +static char sccsid[] = "@(#)parseaddr.c 8.69 (Berkeley) %G%"; #endif /* not lint */ #include "sendmail.h" -- 2.20.1