From: Jean-Marc Pigeon (Delson) Date: Thu, 17 Jul 2025 19:46:46 +0000 (-0400) Subject: Improving sender (using ps title) X-Git-Tag: tag-0.14~71 X-Git-Url: https://jmp-git.ovh.safe.ca/?a=commitdiff_plain;h=99015994fd18fa5896814fd2117b527b8ad43abd;p=jmp%2Fmailleur Improving sender (using ps title) --- diff --git a/Makefile.dbg b/Makefile.dbg index e35381c..5500dde 100644 --- a/Makefile.dbg +++ b/Makefile.dbg @@ -85,24 +85,12 @@ onefeed : debug $(TESTPORT) \ ./$(DATATST)/$(ONEFEED).tst -stdsendr: debug - @ \ - ./bin/sender \ - -d 2 \ - -c ./conf/mailleur.conf.dvl \ - -r $(TESTDIR) \ - `basename -a $(TESTDIR)/var/spool/$(APPNAME)/queue/*.todo | \ - tr '\\n' ' ' ` - onesendr: debug @ \ - ./bin/sender \ - -f \ + ./bin/sender -f \ -d 2 \ -c ./conf/mailleur.conf.dvl \ -r $(TESTDIR) \ - `basename -a $(TESTDIR)/var/spool/$(APPNAME)/queue/*.todo | \ - tr '\\n' ' ' ` onesortr: debug @ \ @@ -136,6 +124,13 @@ dorcvr : bin/receiver \ $(EMLPAR)$(TESTITER) +dosendr: debug + @ \ + ./bin/sender \ + -d 2 \ + -c ./conf/mailleur.conf.dvl \ + -r $(TESTDIR) \ + doscarmt: @ echo "Starting scanner" @ \ @@ -201,7 +196,6 @@ dbgsendr: clean debug -d2 \ -c ./conf/mailleur.conf.dvl \ -r $(TESTDIR) \ - $(TODO) #-------------------------------------------------------------------- #procedure to check programe against valgrind diff --git a/app/sender.c b/app/sender.c index a25894b..12ee6d7 100644 --- a/app/sender.c +++ b/app/sender.c @@ -206,6 +206,103 @@ return status; */ /********************************************************/ /* */ +/* procedure to can a list of todo file. */ +/* */ +/********************************************************/ +static void sending(int argc,char *argv[]) + +{ +#define OPEP "sender.c:sending," +#define TODO "todo" + +unsigned long cycle; +char **list; +int delay; +int phase; +_Bool proceed; + +cycle=0; +list=(char **)0; +delay=20; +if (debug>0) + delay/=10; +phase=0; +proceed=true; +while (proceed==true) { + switch (phase) { + case 0 : //Build list from argv; + if (argc>0) { + for (int i=0;i",appname,fname); + (void) rou_alert(0,"%s fname file <%s>",OPEP,fname); + if ((ptr=strrchr(fname,'.'))==(char *)0) { + (void) rou_alert(0,"%s unable to find <%s> extension",OPEP,fname); + break; + } + *ptr='\000'; + ptr++; + if (strcmp(ptr,EXTODO)!=0) { + (void) rou_alert(0,"%s wrong extension for file <%s.%s>", + OPEP,fname,ptr); + break; + } + (void) rou_alert(0,"%s scanning file <%s>",appname,fname); + if (scantodo(fname)==false) + break; + scan++; + num++; + } + list=(char **)rou_freelist((void **)list,(genfree_t)rou_freestr); + (void) rou_alert(0,"%s Scanned '%d' files",OPEP,num); + (void) usleep(10000); + phase=0; + } + break; + case 3 : //do we need to loop again + phase=0; //Lets say looping requested + cycle++; + (void) prc_settitle("%s sleeping mode (cycle=%08d)",appname,cycle); + (void) sleep(delay); + if ((hangup==true)||((reload==true))) { + (void) rou_alert(0,"%s got hangup or reload signal",OPEP); + phase=999; + } + break; + default : //SAFE Guard + proceed=false; + break; + } + phase++; + } + +#undef TODO +#undef OPEP +} +/* + +*/ +/********************************************************/ +/* */ /* Main routine */ /* Start a channel to a remote ip.port */ /* read file and transmit contecnts to */ @@ -235,13 +332,8 @@ while (proceed==true) { proceed=false; //no need to go further } break; - case 1 : //do we have a parameter - if (params->argc<=0) { - (void) rou_alert(0,"%s todo filename missing (exiting)",SENDER); - proceed=false; //no need to go further - } - break; - case 2 : //Preparing scan + case 1 : //Preparing scan + (void) prc_preptitle(argc,argv,environ); (void) rou_setappname(SENDER); (void) rou_modesubrou(true); (void) sig_modeunisig(true); @@ -252,38 +344,21 @@ while (proceed==true) { phase=999; //direct exit } break; - case 3 : //scanning parameters list - if (params!=(ARGTYP *)0) { //always - int num; - - num=0; - while (numargc) { - char *fname; - char *ptr; - - fname=params->argv[num]; - (void) rou_alert(0,"%s fname file <%s>",OPEP,fname); - if ((hangup==true)||(reload==true)) - break; - if ((ptr=strrchr(fname,'.'))==(char *)0) { - (void) rou_alert(0,"%s unable to find <%s> extension",OPEP,fname); - break; - } - *ptr='\000'; - ptr++; - if (strcmp(ptr,EXTODO)!=0) { - (void) rou_alert(0,"%s wrong extension for file <%s.%s>", - OPEP,fname,ptr); - break; - } - (void) rou_alert(0,"%s scanning file <%s>",appname,fname); - if (scantodo(fname)==false) - break; - num++; - } + case 2 : //locking process + if (prc_locking(appname,true,5)==false) { + (void) rou_alert(0,"%s Unable to lock %s exclusif acccess (system?)", + OPEP,appname); + proceed=false; } break; + case 3 : //sending email + (void) sending(params->argc,params->argv); + break; + case 4 : //Unlocking access + (void) prc_locking(appname,false,1); + break; default : //end of task + (void) prc_cleantitle(); params=par_freeparams(params); (void) rou_loadconfig(config,false); (void) sig_modeunisig(false);