add untested mapping of local envelope From: line
authorEric Allman <eric@ucbvax.Berkeley.EDU>
Thu, 26 Aug 1993 04:21:19 +0000 (20:21 -0800)
committerEric Allman <eric@ucbvax.Berkeley.EDU>
Thu, 26 Aug 1993 04:21:19 +0000 (20:21 -0800)
SCCS-vsn: usr.sbin/sendmail/src/headers.c 8.11

usr/src/usr.sbin/sendmail/src/headers.c

index f262c4c..13ab820 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)headers.c  8.10 (Berkeley) %G%";
+static char sccsid[] = "@(#)headers.c  8.11 (Berkeley) %G%";
 #endif /* not lint */
 
 # include <errno.h>
 #endif /* not lint */
 
 # include <errno.h>
@@ -44,6 +44,7 @@ chompheader(line, def, e)
        struct hdrinfo *hi;
        bool cond = FALSE;
        BITMAP mopts;
        struct hdrinfo *hi;
        bool cond = FALSE;
        BITMAP mopts;
+       char buf[MAXNAME];
        extern ADDRESS *sendto();
 
        if (tTd(31, 6))
        extern ADDRESS *sendto();
 
        if (tTd(31, 6))
@@ -126,6 +127,30 @@ chompheader(line, def, e)
                    (strcmp(fvalue, e->e_from.q_paddr) == 0 ||
                     strcmp(fvalue, e->e_from.q_user) == 0))
                        return (hi->hi_flags);
                    (strcmp(fvalue, e->e_from.q_paddr) == 0 ||
                     strcmp(fvalue, e->e_from.q_user) == 0))
                        return (hi->hi_flags);
+#ifdef MAYBENEXTRELEASE                /* XXX UNTESTED XXX UNTESTED XXX UNTESTED XXX */
+#ifdef USERDB
+               else
+               {
+                       auto ADDRESS a;
+                       char *fancy;
+                       extern char *crackaddr();
+                       extern char *udbsender();
+
+                       fancy = crackaddr(fvalue);
+                       if (parseaddr(fvalue, &a, RF_COPYNONE, '\0', NULL, e) != NULL &&
+                           a.q_mailer == LocalMailer &&
+                           (p = udbsender(a.q_user)) != NULL)
+                       {
+                               char *oldg = macvalue('g', e);
+
+                               define('g', p, e);
+                               expand(fancy, buf, &buf[sizeof buf], e);
+                               define('g', oldg, e);
+                               fvalue = buf;
+                       }
+               }
+#endif
+#endif
        }
 
        /* drop forged Sender: values */
        }
 
        /* drop forged Sender: values */