]> SAFE projects GIT repository - jmp/mailleur/commitdiff
"sorter" and "sender" seems to be working fine
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 4 Jun 2025 09:04:47 +0000 (05:04 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Wed, 4 Jun 2025 09:04:47 +0000 (05:04 -0400)
app/sender.c
lib/geseml.c
lib/geseml.h
lib/unieml.c

index 367fca121ce1ed498552d947be0bf5d92d5e5f6c..922afdebad2dfcd257cdbd692014e3595f9f5cf1 100644 (file)
@@ -48,10 +48,10 @@ if (tra!=(TRATYP **)0) {
     (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>",
@@ -60,7 +60,6 @@ if (tra!=(TRATYP **)0) {
           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   :
index d4568d99c0459b5ca3ac25d97dcc418752f1ccb8..fb6a77b753c6b5ea663607e5b3c06b71fb5c7d45 100644 (file)
@@ -272,7 +272,7 @@ while ((ptr=fgets(line,sizeof(line),qfile))!=(char *)0) {
         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;
@@ -566,7 +566,7 @@ return done;
 /*      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;
@@ -574,6 +574,7 @@ _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;
   }
index ba68bf1b3519f1721312db6bbe1dbc73274ab627..3c97f42e466b139c0dc260545c8eeffca367c9b2 100644 (file)
@@ -10,6 +10,7 @@
 
 #include        <stdlib.h>
 #include        <stdio.h>
+#include        <time.h>
 
 #define EXTOBE  "tobedone"      //directive enxtension in progress
 
@@ -45,7 +46,7 @@ extern void eml_doneqfile(TRATYP **list);
 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);
index 31f6bc8341b007ef964010a0bb3811b393ea15a8..0a893562ab2f154e2bba2c433ca26fffdd3b3d75 100644 (file)
@@ -466,15 +466,16 @@ while (proceed==true) {
         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