]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Improving test function within Makefile
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 6 May 2025 15:09:50 +0000 (11:09 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Tue, 6 May 2025 15:09:50 +0000 (11:09 -0400)
Makefile
app/feeder.c
data-tst/feed00.tst
data-tst/feedxx.tst [moved from data-tst/feed01.tst with 75% similarity]
lib/lvleml.c
lib/unieml.c
lib/unieml.h

index d5cfc869c84eabdedb01fece57ab5998eea69c8c..e9ed5439a664deb2d814ef10063deb44f7fb9714 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -39,7 +39,7 @@ TESTITER=     3
 #--------------------------------------------------------------------
 #testing feed
 FEEDPAR        =                                               \
-               -d3                                     \
+               $(TESTIP)                               \
                $(TESTPORT)                             \
                $(TESTDIR)/$(DATATST)/feed*.tst         \
 
@@ -60,12 +60,14 @@ onefeed     :  debug
                        -c ./conf/feeder.conf.dvl       \
                        $(TESTIP)                       \
                        $(TESTPORT)                     \
-                       $(DATATST)/feed01.tst
+                       $(DATATST)/feedxx.tst
 #                      # -i 127.63.31.15
 
 #direct test
 tstfeed        :  debug
-          @ bin/feeder $(FEEDPAR)
+          @ bin/feeder                                 \
+                         -c ./conf/feeder.conf.dvl     \
+                        $(FEEDPAR)
 
 #using gdb
 dbgfeed        :  debug
index 9fc75517026a49a572a76f9eafebca4c49c88f99..0a42a33f7103d05d6a62edc64b6780a4eb0cc5d0 100644 (file)
@@ -134,19 +134,22 @@ static _Bool gomodetls(SOCPTR *socptr)
 
 {
 #define        WTLS    5       /*wait 5 sec for TLS    */
+
 _Bool status;
 char *got;
+char *action;
 int phase;
 _Bool proceed;
 
 status=false;
 got=(char *)0;
+action="starttls";
 phase=0;
 proceed=true;
 while (proceed==true) {
   switch (phase) {
     case 0      :       //Sending START TLS command
-      if (dooutgoing(socptr,GOTLS)!=(strlen(GOTLS)+2))
+      if (dooutgoing(socptr,action)!=(strlen(action)+2))
         phase=999;      //Unable to send STARTTLS sequence 
       break;
     case 1      :       //Get STARTTLS command status
index 24522d3069187632c378d4b815af163b5b65f917..8bab4948ef330d4f8927736a25dfd6f510b987ad 100644 (file)
@@ -19,9 +19,9 @@ C:COMMENT START
 #Definition to validate mailleur daemon (emlrcvr) server
 #The test serveur itself
 127.127.10.25                   mailleur.example.com    mailleur
-#The MX
-127.127.0.1                    mx1.example.com         mx1
-127.127.0.2                    mx2.example.com         mx2
+#The example.com email feeder
+127.127.0.1                    feed1.example.com       feed1
+127.127.0.2                    feed2.example.com       feed2
 #remote access
 #127.168.0.1                    no reverss address detection
 127.168.10.1                    foreign1.badserver.tld  foreign1
similarity index 75%
rename from data-tst/feed01.tst
rename to data-tst/feedxx.tst
index 93655ca066af940f6c20402985fd4c5a87687d14..9024eda8d4cd91c728088278d48fd314da23b986 100644 (file)
@@ -3,11 +3,11 @@
 T:Simple email sending
 R:220 mailleur.example.com ESMTP (cleartext) emlrcvr...
 S:ORGN 127.127.0.2
-R:250 2.9.9 New peer [127.127.0.2/mx2.example.com] set
+R:250 2.9.9 New peer [127.127.0.2/feed2.example.com] set
 #====================================================
 S:HELO example.com
-R:250-mailleur.example.com, link (cleartext) ready, your IP/FQDN=[127.127.0.2/mx2.example.com]
+R:250-mailleur.example.com, link (cleartext) ready, your IP/FQDN=[127.127.0.2/feed2.example.com]
 S:MAIL FROM: <postmaster@example.com>
-R:Bigre
+R:250 2.1.3 postmaster@example.com.. sender ok
 S:QUIT
 R:221 2.0.0 Bye, closing connection...
index 2fae29c6485c827146b26e3a9346834cbe125fc4..747ab3ee81cffa6d3abe0ed0d06a2a36218e6dcc 100644 (file)
@@ -230,23 +230,13 @@ done=false;
 phase=0;
 proceed=true;
 while (proceed==true) {
-  //(void) rou_alert(0,"JMPDBG %s phase='%d' parm=<%s>",OPEP,phase,parameter);
+  (void) rou_alert(0,"JMPDBG %s phase='%d' parm=<%s>",OPEP,phase,parameter);
   switch (phase) {
     case 0      :       //checking if we have a parameter
       if ((parameter==(char *)0)||(strlen(parameter)==0)) 
         phase=999;      //no parameter
       break;
-    case 1      :       //do we have space
-      if ((parameter[0]!=' ')&&(parameter[0]!='\t'))
-        phase=999;      //parameter wrong format
-      break;
-    case 2      :       //cleaning space character
-      while ((parameter[0]==' ')||(parameter[0]=='\t'))
-        parameter++;
-      if (strlen(parameter)==0)
-        phase=999;      //no parameter?
-      break;
-    case 3      :       //seems to be a good fqdn
+    case 1      :       //seems to be a good fqdn
       contact->fqdn=rou_freestr(contact->fqdn);
       contact->fqdn=strdup(parameter);
       done=true; 
@@ -373,15 +363,15 @@ while (proceed==true) {
   switch (phase) {
     case 0      :       //do we have an originator
       if ((mailfrom==(char *)0)||(strlen(mailfrom)<3)) {
-        (void) transmit(contact,"%d 5.5.0 %s %s originator not specified",
-                                 BADPAR,MAILF,mailfrom);
+        (void) transmit(contact,"%d 5.5.0 <%s> originator not specified",
+                                 BADPAR,mailfrom);
         phase=999;      //no need to go further
         }
       break;
     case 1      :       //do we have already a from
       if (contact->mailfrom!=(char *)0) {
-        (void) transmit(contact,"%d 5.5.1 %s '%s' %s",
-                                BADPAR,MAILF,contact->mailfrom,
+        (void) transmit(contact,"%d 5.5.1 '%s' %s",
+                                BADPAR,contact->mailfrom,
                                 "was previously defined as originator"
                                 );
         phase=999;      //no need to go further
@@ -389,8 +379,8 @@ while (proceed==true) {
       break;
     case 2      :       //check from format
       if ((mailfrom[0]!='<')||(mailfrom[strlen(mailfrom)-1]!='>')) {
-        (void) transmit(contact,"%d 5.5.2 %s %s Format error",
-                                 BADPAR,MAILF,mailfrom);
+        (void) transmit(contact,"%d 5.5.2 '%s' bad Format error",
+                                 BADPAR,mailfrom);
         phase=999;      //no need to go further
         }
       mailfrom[strlen(mailfrom)-1]='\000'; 
index 83a0281e9301ad5748fc4fb1a28a2defb428929b..903e1b0c720997222b75a60acb0af3fcd6f94c53 100644 (file)
@@ -20,15 +20,16 @@ typedef struct  {
 
 //this list order by key length
 static VOCTYP vocsmtp[]={
-                {c_helo,"HELO"},
                 {c_ehlo,"EHLO"},
+                {c_helo,"HELO"},
+                {c_mail,"MAIL FROM:"},
                 {c_noop,"NOOP"},
 #ifdef  MODEDEBUG
                 {c_orgn,"ORGN"},
 #endif
                 {c_quit,"QUIT"},
+                {c_rcpt,"RCPT TO:"},
                 {c_rset,"RSET"},
-                {c_mail,MAILF},
                 {c_starttls,"STARTTLS"},
                 {c_unknown,(const char *)0}
                 };
@@ -100,6 +101,12 @@ for (ptr=vocsmtp;ptr->code!=c_unknown;ptr++) {
 
     code=ptr->code;
     par=keyword+strlen(ptr->key);
+    *keyword='\000';     //lets say no parameters
+    if ((*par=='\000')||((*par!=' ')&&(*par!='\t')))
+      break;            //space missing -> argument missing
+    //removing unneeded space
+    while ((*par==' ')||(*par=='\t'))
+      par++;
     (void) memmove(keyword,par,strlen(par)+1);
     break;
     }
index 84ebb49d282bd9fe7dfa6d258b904ecdf44ebb7c..bb007b9d166a4a08065279de8c92200e918c4904 100644 (file)
 
 
 //SMTP avail command
-#define        MAILF   "MAIL FROM:"    //Mail from a sender
-#define GOTLS   "STARTTLS"      //Requesting crypted mode
+//#define      MAILF   "MAIL FROM:"    //Mail from a sender
+//#define GOTLS   "STARTTLS"      //Requesting crypted mode
 
 //list of keyword
 typedef enum    {               //list of SMTP protocol keyword
-                c_helo,         //Basic Helo command
                 c_ehlo,         //EHLO command
+                c_helo,         //Basic Helo command
+                c_mail,         //'mail from:' sequence detected
                 c_noop,         //No Operation request
                 c_orgn,         //DEBUG PEERIP override
                 c_quit,         //quit exchange
+                c_rcpt,         //'rcpt to:' sequence detected
                 c_rset,         //resetting session
-                c_mail,         //mail from sequence detected
                 c_starttls,     //Starting a TLS crypted link
                 c_unknown       //key word unknown
                 }CODTYP;