]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Detecting NO REALY situation
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Fri, 13 Jun 2025 13:11:54 +0000 (09:11 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Fri, 13 Jun 2025 13:11:54 +0000 (09:11 -0400)
Makefile
data-feed/feed11.tst
lib/geseml.c
lib/lvleml.c
lib/unieml.h

index 458c405ab9206fc8dff5c2fbd86990df172c3725..a31216cf120d44e6abb00a8470bd05bbbc58a959 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -130,7 +130,7 @@ FEEDPAR     =                                               \
                $(TESTIP)                               \
                $(TESTPORT)                             \
                ./$(DATATST)/feed0*.tst
-ONEFEED=feed02.tst
+ONEFEED=feed11.tst
 
 #to test with an external server
 extfeed        :       debug
index a2bbe64dac9e26460d97de48e681cecc26f63782..976421ca58045da60d6c436b563b1256ebf06df8 100644 (file)
@@ -8,9 +8,12 @@ C:GOTLS
 R:250 Link now encryp...
 S:MAIL FROM: <trouble@subdom1.example.com>
 R:250 2.1.3 trouble@subdom1.example.com.. sender ok
+#---------------------------------------------
+S:RCPT TO: <dom1user3@example.com>
+R:250 2.6.4 Address accepted
 S:RCPT TO: <dom1user3@subdom1.example.com>
 R:250 2.6.4 Address accepted
-S:RCPT TO: <dom1user3@example.com>
+S:RCPT TO: <dom1user1@subdom2.example.com>
 R:250 2.6.4 Address accepted
 #-------------------------------------------------------------------------
 #-sending data
index 57bdcc549561c3e9106fe328bc0a1cdbacbe104f..73d6d5d8e91c77b0bc355dc8caf067089986f487 100644 (file)
@@ -497,17 +497,28 @@ if (list!=(TRATYP **)0) {
 
   ptr=list;
   while (*ptr!=(TRATYP *)0) {
-    if ((*ptr)->code=='C') {
-      if (eml_countqfile((*ptr)->sessid,-1)==0) {
-        char fname[200];
-
-        (void) rou_alert(0,"%s JMPDBG need to remove <%s>",OPEP,(*ptr)->sessid);
-        (void) snprintf(fname,sizeof(fname),"%s.%s",(*ptr)->sessid,EXTCNT);
-        (void) eml_deleteqfile((*ptr)->sessid);
-        (void) eml_deleteqfile(fname);
-        }
+    _Bool toadd;
+
+    toadd=true;
+    switch ((*ptr)->code) {
+      case 'C'  :       //email completed 
+        toadd=false;
+        if (eml_countqfile((*ptr)->sessid,-1)==0) {
+          char fname[200];
+
+          (void) rou_alert(0,"%s JMPDBG need to remove <%s>",OPEP,(*ptr)->sessid);
+          (void) eml_deleteqfile((*ptr)->sessid);
+          (void) snprintf(fname,sizeof(fname),"%s.%s",(*ptr)->sessid,EXTCNT);
+          (void) eml_deleteqfile(fname);
+          }
+        break;
+      case 'W'  :       //need to send a warning
+        (void) rou_alert(0,"%s JMPDBG need to do warning  <%s>",OPEP,(*ptr)->sessid);
+        break;
+      default   :
+        break;
       }
-    else 
+    if (toadd==true)
       next=(TRATYP **)rou_addlist((void **)next,(void *)eml_duptra(*ptr));
     ptr++;
     }
index 8d552a1ff0e4647bd107d23da26df619d8a3ae11..a9be9b737846b8f77e5a55df8ab9bd8f2439309c 100644 (file)
@@ -1182,15 +1182,16 @@ while (proceed==true) {
         resp=&((*dest)->resp);
         rspcode=tcp_smtp_command(&rmt,resp,"RCPT TO: <%s>",(*dest)->rcptto);
         switch (rspcode) {
-          case CMDOK      :     //originator accepted
+          case CMDOK    :       //originator accepted
             tobesend++;
             (*dest)->sendcode=rspcode;
             break;
-          case UKNUSER    :     //originator accepted
+          case UKNUSER  :       //recipient is unknown
+          case NORELAY  :       //email no relayed
             (*dest)->code='W';  //Need to send a Warning
             (*dest)->sendcode=rspcode;
             break;
-          default         :     //Not accepted recipient
+          default       :       //Not accepted recipient
             (void) rou_alert(0,"%s sessid=<%s>, unknwon code='%d'",
                                 OPEP,sessid,rspcode);
             (*dest)->code='C';  //completed (Temporary JMPDBG);
index 071cbb12991262d11d579493cdc0888e56bdd817..2fe17f3bddcd69bcf3ec5d66f2070fc4a81ccda9 100644 (file)
@@ -26,6 +26,7 @@
 #define UKNUSER 551             //Unknown user
 #define MALABRT 552             //email data rejected
 #define NOTEML  553             //Not an email address
+#define NORELAY 555             //remote do not relay email
 #define MISSMX  563             //NO MX found for recipient
 
 //defining extensions