]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Set badseq when mail from is not specified
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Thu, 19 Jun 2025 14:39:00 +0000 (10:39 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Thu, 19 Jun 2025 14:39:00 +0000 (10:39 -0400)
Makefile.dbg
lib/lvleml.c
lib/subrou.c

index 73aeb7464d716f6bc174a420cc66d57a4a3f39a8..c5f60667f915a75c3f1eb95766d5edcbcee4c3f5 100644 (file)
@@ -33,7 +33,7 @@ onercvr       :  clean debug newtest
                $(EMLPAR)$(TESTITER)
 
 #                      # -i 127.63.31.15
-onefeed        : 
+onefeed        :  debug
           @ bin/feeder                                 \
                        -f                              \
                        -d 2                            \
@@ -42,7 +42,7 @@ onefeed       :
                        $(TESTPORT)                     \
                        ./$(DATATST)/$(ONEFEED)
 
-onesendr:  
+onesendr:  debug
           @                                            \
             ./bin/sender                               \
                  -f                                    \
@@ -52,7 +52,7 @@ onesendr:
                   `basename -a $(TESTDIR)/var/spool/$(APPNAME)/queue/*.todo  | \
                        tr '\\n' ' ' `
           
-onesortr: 
+onesortr:  debug
           @                                            \
             bin/sorter                                 \
                   -f                                   \
index 24dd7629cccf70681696d421f7e583918be67e43..6ddae4a2d318eeb0aa45d4799bb979917d7c37bb 100644 (file)
@@ -726,14 +726,19 @@ phase=0;
 while (proceed==true) {
   //(void) rou_alert(0,"JMPDBG %s phase='%d' rcptto=<%s>",OPEP,phase,rcptto);
   switch (phase) {
-    case 0      :       //do we have an originator
+    case 0      :       //do we have a mailfrom
+      if ((contact->mailfrom==(char *)0)||(strlen(contact->mailfrom)==0)) {
+        (void) transmit(contact,"%d Bad sequence of commands.",BADSEQ);
+        phase=999;      //no need to go further
+        }
+      break;
+    case 1      :       //do we have an originator
       if ((rcptto==(char *)0)||(strlen(rcptto)==0)) {
-        (void) transmit(contact,"%d 5.6.0 <%s> recipient not specified",
-                                 BADPAR,rcptto);
+        (void) transmit(contact,"%d 5.6.0 recipient not specified",BADPAR);
         phase=999;      //no need to go further
         }
       break;
-    case 1      :       //check rcpt format
+    case 2      :       //check rcpt format
       if ((rcptto[0]!='<')||(rcptto[strlen(rcptto)-1]!='>')) {
         (void) transmit(contact,"%d 5.6.1 '%s' bad Format error",
                                  BADPAR,rcptto);
@@ -742,7 +747,7 @@ while (proceed==true) {
       rcptto[strlen(rcptto)-1]='\000'; 
       (void) memmove(rcptto,rcptto+1,strlen(rcptto));
       break;
-    case 2      :       //checking rcptto format
+    case 3      :       //checking rcptto format
       neu=eml_isemailok(rcptto,&report);
       if (neu==(RCPTYP *)0) {
         (void) transmit(contact,"%d 5.6.2 %s",NOTEML,report);
@@ -750,7 +755,7 @@ while (proceed==true) {
         phase=999;      //no need to go further
         }
       break;
-    case 3      :       //Do we have a domain MX
+    case 4      :       //Do we have a domain MX
       if (setlocdom(contact,neu)==false) {
         (void) transmit(contact,"%d 5.6.3 %s (domain=%s)",
                                  MISSMX,
@@ -760,13 +765,13 @@ while (proceed==true) {
         phase=999;      //no need to go further
         }
       break;
-    case 4      :       //Storing rcpt to
+    case 5      :       //Storing rcpt to
       if (eml_addrecipient(&(contact->recipients),neu)==false) {
         detail="duplicate recipients will be consolidated";
         neu=eml_freerecipient(neu);
         }
       break;
-    case 5      :       //everything ok
+    case 6      :       //everything ok
       (void) transmit(contact,"%d 2.6.4 %s",CMDOK,detail);
       success=true;
       break;
index fb1fa5b545e2a87b54cfd7a57dd55d0f5cd79123..47914786e22f97ed06a078afcbc47ca2f0b47ae7 100644 (file)
@@ -455,18 +455,17 @@ PUBLIC void rou_valert(const int dlevel,const char *fmt,va_list ap)
 {
 if (debug>=dlevel)
   {
+  char lvl[10];
   char strloc[10000];
 
+  (void) snprintf(lvl,sizeof(lvl),"(dl=%02d) ",dlevel);
   (void) memset(strloc,'\000',sizeof(strloc));
   (void) vsnprintf(strloc,sizeof(strloc)-1,fmt,ap);
   if (foreground==true)
-    (void) fprintf(stderr,"%s\n",strloc);
+    (void) fprintf(stderr,"%s%s\n",lvl,strloc);
   else {
     char *ptr;
-    char lvl[10];
-
     ptr=strloc;
-    (void) snprintf(lvl,sizeof(lvl),"(dl=%02d) ",dlevel);
     while (strlen(ptr)>DEBMAX) {
       char locline[DEBMAX+10];