|
System | : | Linux MiraNet 3.0.0-14-generic-pae #23-Ubuntu SMP Mon Nov 21 22:07:10 UTC 2011 i686 |
Software | : | Apache. PHP/5.3.6-13ubuntu3.10 |
ID | : | uid=65534(nobody) gid=65534(nogroup) groups=65534(nogroup)
|
|
Safe Mode | : | OFF |
Open_Basedir | : | OFF |
Freespace | : | 20.05 GB of 70.42 GB (28.48%) |
|
MySQL: ON MSSQL: OFF Oracle: OFF PostgreSQL: OFF Curl: OFF Sockets: ON Fetch: OFF Wget: ON Perl: ON |
Disabled Functions: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,
|
[ System Info ]
[ Processes ]
[ SQL Manager ]
[ Eval ]
[ Encoder ]
[ Mailer ]
[ Back Connection ]
[ Backdoor Server ]
[ Kernel Exploit Search ]
[ MD5 Decrypter ]
[ Reverse IP ]
[ Kill Shell ]
[ FTP Brute-Force ]
|
|
/
usr/
src/
courier-0.66.1/
courier/
libs/
- drwxrwxrwx
|
Viewing file: comdsn2.c (2.6 KB) -rw-rw-rw-Select action/file-type:  ( +) |  ( +) |  ( +) | Code ( +) | Session ( +) |  ( +) | SDB ( +) |  ( +) |  ( +) |  ( +) |  ( +) |  ( +) |
/* ** Copyright 1998 - 1999 Double Precision, Inc. ** See COPYING for distribution information. */
#include "courier.h" #include "comctlfile.h" #include <string.h> #include <stdlib.h>
/* Determine if this recipient should be reported on */
const char *dsn_sender(struct ctlfile *ctf, unsigned i, int isdelayeddsn) { char c=ctf->delstatus[i][0]; const char *p; const char *sender=ctf->sender;
/* This msg just came back from the dsn module */
if (c != COMCTLFILE_DELSUCCESS && !isdelayeddsn) c=COMCTLFILE_DELFAIL; /* Deferrals are treated as failures for final dsn */
{ static int bouncetoauth = -1;
if (bouncetoauth < 0) { p=getenv("DSNTOAUTHADDR");
bouncetoauth=p && *p == '0' ? 0:1; }
if (bouncetoauth) { int i;
i=ctlfile_searchfirst(ctf, COMCTLFILE_AUTHNAME);
if (i >= 0 && strchr(ctf->lines[i]+1, '@')) { sender=ctf->lines[i]+1; } } }
/* ** An empty envelope sender always bounces failures to postmaster, ** doublebounce. */
if (*sender == 0) return (!isdelayeddsn && c == COMCTLFILE_DELFAIL && (ctf->dsnreceipients[i] == 0 || ctf->dsnreceipients[i][0] == 0 || strchr(ctf->dsnreceipients[i], 'F')) ? "postmaster":0);
if (strcmp(sender, TRIPLEBOUNCE) == 0) return (0);
switch (c) { case COMCTLFILE_DELSUCCESS: if (isdelayeddsn) return (0); /* This is a delayed DSN only */
/* ** Only succesfull local deliveries or relays are ever ** reported. */
for (p=ctf->delstatus[i]; *p; p++) if (*p == 'l' || *p == 'r') break; if (!*p) return (0);
/* ** To report a success DSN, NOTIFY=SUCCESS must always be ** selected. */
if (ctf->dsnreceipients[i] && ctf->dsnreceipients[i][0] && strchr(ctf->dsnreceipients[i], 'S')) break; return (0);
case COMCTLFILE_DELFAIL: if (isdelayeddsn) return (0); /* This is a delayed DSN only */
/* ** Report failures unless NOTIFY was used, and FAILURE was ** NOT selected. */
if (ctf->dsnreceipients[i] && ctf->dsnreceipients[i][0] && strchr(ctf->dsnreceipients[i], 'F') == 0) return (0); break; default:
/* Delayed DSN */
if (!isdelayeddsn) return (0);
if ( ctf->dsnreceipients[i] && ctf->dsnreceipients[i][0]) { const char *p=ctf->dsnreceipients[i];
for ( ; *p; p++) /* ** When NOTIFY was used, and DELAY was selected, ** always report. */ if (*p == 'D') break;
if (!*p) return (0); } else { static int defaultdelay = -1;
if (defaultdelay < 0) { p=getenv(DSNDEFAULTNOTIFYDELAY); defaultdelay=p && *p == '0' ? 0:1; } if (defaultdelay) break; return (0); } break; } return (sender); }
|