1/* |
2 * Copyright (c) 1998-2003 Sendmail, Inc. and its suppliers. |
3 * All rights reserved. 4 * Copyright (c) 1983, 1995-1997 Eric P. Allman. All rights reserved. 5 * Copyright (c) 1988, 1993 6 * The Regents of the University of California. All rights reserved. 7 * 8 * By using this file, you agree to the terms and conditions set 9 * forth in the LICENSE file which can be found at the top level of 10 * the sendmail distribution. 11 * 12 */ 13 14#include <sendmail.h> 15 |
16SM_RCSID("@(#)$Id: savemail.c,v 8.303 2004/01/14 02:56:51 ca Exp $") |
17 18static void errbody __P((MCI *, ENVELOPE *, char *)); 19static bool pruneroute __P((char *)); 20 21/* 22** SAVEMAIL -- Save mail on error 23** 24** If mailing back errors, mail it back to the originator --- 44 unchanged lines hidden (view full) --- 69 SM_MBDB_T user; 70 71 72 if (tTd(6, 1)) 73 { 74 sm_dprintf("\nsavemail, errormode = %c, id = %s, ExitStat = %d\n e_from=", 75 e->e_errormode, e->e_id == NULL ? "NONE" : e->e_id, 76 ExitStat); |
77 printaddr(sm_debug_file(), &e->e_from, false); |
78 } 79 80 if (e->e_id == NULL) 81 { 82 /* can't return a message with no id */ 83 return panic; 84 } 85 --- 87 unchanged lines hidden (view full) --- 173 174 case ESM_REPORT: 175 176 /* 177 ** If the user is still logged in on the same terminal, 178 ** then write the error messages back to hir (sic). 179 */ 180 |
181#if USE_TTYPATH |
182 p = ttypath(); |
183#else /* USE_TTYPATH */ 184 p = NULL; 185#endif /* USE_TTYPATH */ 186 |
187 if (p == NULL || sm_io_reopen(SmFtStdio, 188 SM_TIME_DEFAULT, 189 p, SM_IO_WRONLY, NULL, 190 smioout) == NULL) 191 { 192 state = ESM_MAIL; 193 break; 194 } --- 323 unchanged lines hidden (view full) --- 518 519 if (msg == NULL) 520 msg = "Unable to deliver mail"; 521 522 if (tTd(6, 1)) 523 { 524 sm_dprintf("\n*** Return To Sender: msg=\"%s\", depth=%d, e=%p, returnq=", 525 msg, returndepth, e); |
526 printaddr(sm_debug_file(), returnq, true); |
527 if (tTd(6, 20)) 528 { 529 sm_dprintf("Sendq="); |
530 printaddr(sm_debug_file(), e->e_sendqueue, true); |
531 } 532 } 533 534 if (++returndepth >= MAXRETURNS) 535 { 536 if (returndepth != MAXRETURNS) 537 syserr("554 5.3.0 returntosender: infinite recursion on %s", 538 returnq->q_paddr); --- 1149 unchanged lines hidden --- |