]> SAFE projects GIT repository - jmp/mailleur/commitdiff
If successfull message is sent just once
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 9 Jun 2025 22:28:46 +0000 (18:28 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 9 Jun 2025 22:28:46 +0000 (18:28 -0400)
lib/lvleml.c
lib/unieml.h

index fed0a057559bc3b54c5ffed7dc309e34b4874cf1..396c03d7a2c983fc62d39e786f5a5300c07dc5dc 100644 (file)
@@ -949,7 +949,7 @@ tobesend=0;
 phase=0;
 proceed=true;
 while (proceed==true) {
-  //(void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
+  (void) rou_alert(0,"%s JMPDBG phase='%d'",OPEP,phase);
   switch (phase) {
     case 0      :       //process completed?
       if ((*tra)==(TRATYP *)0)
@@ -1026,18 +1026,48 @@ while (proceed==true) {
         switch (rspcode) {
           case CMDOK      :     //originator accepted
             tobesend++;
+            (*dest)->sendcode=rspcode;
+            break;
+          case UKNUSER    :     //originator accepted
+            (*dest)->code='C';  //completed (Temporary JMPDBG);
+            (*dest)->sendcode=rspcode;
             break;
           default         :     //Not accepted recipient
+            (void) rou_alert(0,"%s sessid=<%s>, unknwon code='%d'",
+                                OPEP,sessid,rspcode);
+            (*dest)->code='C';  //completed (Temporary JMPDBG);
+            (*dest)->sendcode=BADPAR;
             break;
           }
         dest++;
         }
+      if (tobesend==0)
+        phase++;        //no user accepted (no data)
       break;
       }
-    case 7      :       //send email data
-      if (tobesend>0)
-        (void) senddata(&rmt,tosend,sessid); 
+    case 7      :  {    //send email data
+      int rspcode;
+      TRATYP **dest;
+
+      rspcode=senddata(&rmt,tosend,sessid); 
+      dest=tosend;
+      while (*dest!=(TRATYP *)0) {
+        switch ((*dest)->sendcode) {
+          case CMDOK    :
+            (*dest)->code='C';  //Data was sent properly
+            break;
+          case UKNUSER  :       //NO BREAK
+          case BADPAR   :
+            break;
+          default       :
+            (void) rou_alert(0,"%s sessid=<%s>, Unexpected code='%d' (Bug?)",
+                                OPEP,sessid,rspcode);
+            break;
+          }
+        dest++;
+        }
       break;
+      }
     case 8      :       //cleaning recipient list
       (void) free(tosend);
       tosend=(TRATYP **)0;
index 9016176a4626f81ac44f10f13e7ad8aa97d227e2..ad886dc29d9721718471ff91a606894eeb8ccae3 100644 (file)
@@ -20,6 +20,7 @@
 #define BADPAR  501             //error in parameters
 #define CMDBAD  502             //command not implemented
 #define DATRJC  521             //Data Rejected
+#define UKNUSER 551             //Unknown user
 #define MALABRT 552             //email data rejected
 #define NOTEML  553             //Not an email address
 #define MISSMX  563             //NO MX found for recipient