(void) rou_alert(0,"%s JMPDBG date='%ld' isnow='%ld'",OPEP,(*ptr)->date,isnow);
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
(*ptr)->code='C'; //delivery done 'C'ompleted
- (void) eml_add_delay(*ptr);
if (eml_store_email(*ptr)==false) {
(*ptr)->code='L'; //delivery done 'D'elayed
(void) rou_alert(0,"%s Unable to deliver email <%s> to <%s>",
break;
case 'R' : //remote delivery
//JMPDBG set as the remote email was not succesful
- (void) eml_add_delay(*ptr);
(void) rou_alert(0,"%s JMPDBG delay='%d'",OPEP,(*ptr)->delay);
break;
default :
break;
case 1 : //scanning line contents
if (sscanf(line,"%c %ld %d %s %s %s",&code,&date,&delay,id,from,to)!=6) {
- (void) rou_alert(0,"%s, Unable to scan <%s> (config?)",OPEP,line);
+ (void) rou_alert(0,"%s Unable to scan <line=%s> (config?)",OPEP,line);
phase=999; //No data within line
}
break;
/* Return true if succesfull, false otherwise */
/* */
/********************************************************/
-PUBLIC _Bool eml_add_delay(TRATYP *tra)
+PUBLIC _Bool eml_add_delay(time_t isnow,TRATYP *tra)
{
_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;
}
#include <stdlib.h>
#include <stdio.h>
+#include <time.h>
#define EXTOBE "tobedone" //directive enxtension in progress
extern _Bool eml_store_email(TRATYP *tra);
//procedure to add execution delay to an email sending
-extern _Bool eml_add_delay(TRATYP *tra);
+extern _Bool eml_add_delay(time_t isnow,TRATYP *tra);
//procedure to fork a process and start the "sender" process
extern _Bool eml_start_sender(char *todo);
register char *ptr;
ptr=data->d_name;
- if (taille>0) {
+ if (*ptr=='.')
+ continue; //hidden file
+ if (taille>0)
ptr=strstr(data->d_name,ext);
- if ((ptr!=(char *)0)&&(strlen(ptr)!=taille)&&(*(ptr-1)!='.'))
- ptr=(char *)0;
- }
- if (ptr!=(char *)0) {
- (void) rou_alert(0,"%s JMPDBG got <%s>",OPEP,data->d_name);
- dnames=(char **)rou_addlist((void **)dnames,(void *)strdup(data->d_name));
- }
+ if (ptr==(char *)0)
+ continue; //extension not found
+ if ((strlen(ptr)!=taille)&&(*(ptr-1)!='.'))
+ continue; //Not the right extension
+ (void) rou_alert(0,"%s JMPDBG got <%s>",OPEP,data->d_name);
+ dnames=(char **)rou_addlist((void **)dnames,(void *)strdup(data->d_name));
}
break;
case 2 : //closing directory