static _Bool dispatcher(TRATYP **tra)
{
-#define OPEP "sorter.c:dispatcher,"
+#define OPEP "sender.c:dispatcher,"
_Bool status;
status=false;
if (tra!=(TRATYP **)0) {
time_t isnow;
+ int count;
TRATYP **ptr;
isnow=time((time_t *)0);
ptr=tra;
+ count=0;
status=true;
while (*ptr!=(TRATYP *)0) {
- (void) rou_alert(0,"%s JMPDBG date='%ld' isnow='%ld'",OPEP,(*ptr)->date,isnow);
+ count++;
if (((*ptr)->date+(*ptr)->delay)<=isnow) {
- (void) rou_alert(0,"%s JMPDBG action delay='%d'",OPEP,(*ptr)->delay);
(void) eml_add_delay(isnow,*ptr);
switch ((*ptr)->code) {
case 'L' : //local delivery
+ (void) rou_alert(0,"%s local email count='%d'",OPEP,count);
(*ptr)->code='C'; //delivery done 'C'ompleted
if (eml_store_email(*ptr)==false) {
(*ptr)->code='L'; //delivery done 'D'elayed
}
break;
case 'R' : //remote delivery
+/*
+ char temps[40];
+
+ (void) strftime(temps,sizeof(temps),"%H:%M:%S",localtime(&isnow));
//JMPDBG set as the remote email was not succesful
- (void) rou_alert(0,"%s JMPDBG delay='%d'",OPEP,(*ptr)->delay);
+ (void) rou_alert(0,"%s JMPDBG at '%s', Unable to deliver email <%s> to <%s>",
+ OPEP,temps,(*ptr)->sessid,(*ptr)->rcptto);
+*/
break;
default :
(void) rou_alert(0,"%s unexpected code '%c'",OPEP,(*ptr)->code);
R:250 2.6.4 Address accepted
S:RCPT TO: <dom2user2@subdom2.example.com>
R:250 2.6.4 Address accepted
+S:RCPT TO: <postmaster@example.com>
+R:250 2.6.4 Address accepted
#-------------------------------------------------------------------------
#-sending data
C:DATA
sids=(SIDTYP **)0;
next=(TRATYP **)0;
-(void) rou_alert(0,"%s JMPDBG trying check",OPEP);
if (list!=(TRATYP **)0) {
TRATYP **ptr;
PUBLIC _Bool eml_add_delay(time_t isnow,TRATYP *tra)
{
+#define OPEP "geseml.c:eml_add_delay,"
_Bool status;
status=false;
-(void) rou_alert(0,"eml_add_delay, JMPDBG");
if (tra!=(TRATYP *)0) {
tra->date=isnow;
tra->delay=(tra->delay*2)+60;
status=true;
}
return status;
+
+#undef OPEP
}
/*
^L