]> SAFE projects GIT repository - jmp/mailleur/commitdiff
Adding feed directive "W"
authorJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 5 May 2025 19:35:04 +0000 (15:35 -0400)
committerJean-Marc Pigeon (Delson) <jmp@safe.ca>
Mon, 5 May 2025 19:35:04 +0000 (15:35 -0400)
app/feeder.c
data-tst/feed00.tst
lib/devsoc.h

index f5a09ffae3540fd1ce9c4ce72cf0ba81b3151639..38c627ebc2fec3e60726670f03e06dbc7754c8a3 100644 (file)
@@ -266,7 +266,7 @@ while (proceed==true) {
           (void) rou_alert(0,"A Signal was received");
           phase=999;      //No need to go further
           break;
-        case -2 :       //remot disconnected
+        case -2 :       //remote is disconnected
           received=rou_freestr(received);
           received=strdup("Disconnected");
           break;
@@ -316,10 +316,12 @@ static _Bool scanline(SOCPTR *socptr,int numline,char *line)
 {
 #define OPEP "feeder.c:scanline"
 _Bool status;
+char action;
 int phase;
 _Bool proceed;
 
 status=true;
+action='\000';
 phase=0;
 proceed=true;
 (void) rou_alert(3,"%s line=<%s>",OPEP,line);
@@ -337,23 +339,29 @@ while (proceed==true) {
         status=false;
         proceed=false; //discarding line
         }
+      action=line[0];
+      line+=2;
       break;
     case 2      :       //discarding comment
-      switch (line[0]) {
+      switch (action) {
         case 'C'        :       //command to execute
-          status=docommand(socptr,numline,line+2);
+          status=docommand(socptr,numline,line);
           break;
         case 'R'        :       //Receiving data
-          status=doincoming(socptr,numline,line+2);
+          status=doincoming(socptr,numline,line);
           break;
         case 'S'        :       //sending data
-          (void) dooutgoing(socptr,line+2);
+          (void) dooutgoing(socptr,line);
           break;
         case 'T'        :       //Get the test titre
-          status=strncpy(testname,line+2,sizeof(testname));
+          status=strncpy(testname,line,sizeof(testname));
+          break;
+        case 'W'        :       //Wait X second
+          (void) sleep(atoi(line));
           break;
         default         :       //Unexpected
-          (void) report(numline,line+2,"Unexpected directive");
+          line-=2;
+          (void) report(numline,line,"Unexpected directive");
           status=false;
           break;
         }
index de07b5cc73a9125b1c49167f7188de7e211ebb05..e8fa8cfe24f83081b28194dd4200f6b2794fca1e 100644 (file)
@@ -36,5 +36,10 @@ R:250 HELP
 S:EHLO
 R:501 5.5.4 syntax error (domain part missing), closing connection.
 R:Disconnected
-#S:QUIT
-#R:221 2.0.0 Bye, closing connection...
+#-------------------------------------------------------------------------
+#prepare next test
+#waiting 1 sec
+W:1
+#-restarting link
+#L:first restart link
+#-------------------------------------------------------------------------
index ff2552b33fa88b6233e292bad83264da794ae75f..3ae6bf6944a50244a73fc0ce0bb8b16841fdc9fd 100644 (file)
@@ -29,6 +29,9 @@ extern const char *srvr_certs[3];
 //reference to a socket definition
 typedef void SOCPTR;
 
+//reference to a output channel definition
+typedef void OUTPTR;
+
 //procedure to parse an email protocol 
 extern PROTYP soc_getprotocol(const char *strproto);