give reasonable error message on transienterror() of include
authorEric Allman <eric@ucbvax.Berkeley.EDU>
Fri, 30 Apr 1993 22:11:09 +0000 (14:11 -0800)
committerEric Allman <eric@ucbvax.Berkeley.EDU>
Fri, 30 Apr 1993 22:11:09 +0000 (14:11 -0800)
or forward file

SCCS-vsn: usr.sbin/sendmail/src/alias.c 6.34
SCCS-vsn: usr.sbin/sendmail/src/recipient.c 6.38

usr/src/usr.sbin/sendmail/src/alias.c
usr/src/usr.sbin/sendmail/src/recipient.c

index a8cdb83..d755d87 100644 (file)
@@ -25,15 +25,15 @@ ERROR: DBM is no longer supported -- use NDBM instead.
 #ifndef lint
 #ifdef NEWDB
 #ifdef NDBM
 #ifndef lint
 #ifdef NEWDB
 #ifdef NDBM
-static char sccsid[] = "@(#)alias.c    6.33 (Berkeley) %G% (with NEWDB and NDBM)";
+static char sccsid[] = "@(#)alias.c    6.34 (Berkeley) %G% (with NEWDB and NDBM)";
 #else
 #else
-static char sccsid[] = "@(#)alias.c    6.33 (Berkeley) %G% (with NEWDB)";
+static char sccsid[] = "@(#)alias.c    6.34 (Berkeley) %G% (with NEWDB)";
 #endif
 #else
 #ifdef NDBM
 #endif
 #else
 #ifdef NDBM
-static char sccsid[] = "@(#)alias.c    6.33 (Berkeley) %G% (with NDBM)";
+static char sccsid[] = "@(#)alias.c    6.34 (Berkeley) %G% (with NDBM)";
 #else
 #else
-static char sccsid[] = "@(#)alias.c    6.33 (Berkeley) %G% (without NEWDB or NDBM)";
+static char sccsid[] = "@(#)alias.c    6.34 (Berkeley) %G% (without NEWDB or NDBM)";
 #endif
 #endif
 #endif /* not lint */
 #endif
 #endif
 #endif /* not lint */
@@ -955,6 +955,14 @@ forward(user, sendq, e)
                if (transienterror(err))
                {
                        /* we have to suspend this message */
                if (transienterror(err))
                {
                        /* we have to suspend this message */
+                       if (tTd(27, 2))
+                               printf("forward: transient error on %s\n", buf);
+#ifdef LOG
+                       if (LogLevel > 2)
+                               syslog(LOG_NOTICE, "%s: forward %s: transient error: %e",
+                                       e->e_id, buf);
+#endif
+                       message("%s: %s: message queued", buf, strerror(err));
                        user->q_flags |= QQUEUEUP|QDONTSEND;
                        return;
                }
                        user->q_flags |= QQUEUEUP|QDONTSEND;
                        return;
                }
index 839e85d..f542050 100644 (file)
@@ -7,7 +7,7 @@
  */
 
 #ifndef lint
  */
 
 #ifndef lint
-static char sccsid[] = "@(#)recipient.c        6.37 (Berkeley) %G%";
+static char sccsid[] = "@(#)recipient.c        6.38 (Berkeley) %G%";
 #endif /* not lint */
 
 # include "sendmail.h"
 #endif /* not lint */
 
 # include "sendmail.h"
@@ -319,12 +319,27 @@ recipient(a, sendq, e)
                }
                else
                {
                }
                else
                {
-                       int err;
+                       int ret;
 
                        message("including file %s", a->q_user);
 
                        message("including file %s", a->q_user);
-                       err = include(a->q_user, FALSE, a, sendq, e);
-                       if (transienterror(err))
+                       ret = include(a->q_user, FALSE, a, sendq, e);
+                       if (transienterror(ret))
+                       {
+#ifdef LOG
+                               if (LogLevel > 2)
+                                       syslog(LOG_NOTICE, "%s: include %s: transient error: %e",
+                                               e->e_id, a->q_user);
+#endif
                                a->q_flags |= QQUEUEUP|QDONTSEND;
                                a->q_flags |= QQUEUEUP|QDONTSEND;
+                               usrerr("451 Cannot open %s: %s",
+                                       a->q_user, errstring(ret));
+                       }
+                       else if (ret != 0)
+                       {
+                               usrerr("550 Cannot open %s: %s",
+                                       a->q_user, errstring(ret));
+                               a->q_flags |= QBADADDR;
+                       }
                }
        }
        else if (m == FileMailer)
                }
        }
        else if (m == FileMailer)
@@ -671,16 +686,6 @@ include(fname, forwarding, ctladdr, sendq, e)
                int ret = errno;
 
                clrevent(ev);
                int ret = errno;
 
                clrevent(ev);
-               if (transienterror(ret))
-               {
-                       ctladdr->q_flags |= QQUEUEUP|QDONTSEND;
-                       errno = 0;
-                       usrerr("451 Cannot open %s: %s", fname, errstring(ret));
-               }
-               else
-               {
-                       usrerr("550 Cannot open %s: %s", fname, errstring(ret));
-               }
                return ret;
        }
 
                return ret;
        }