TESTITER= 1
#--------------------------------------------------------------------
#To test sorter
-dosorter: debug
+dosorter:
@ bin/sorter \
-d 2 \
-c ./conf/mailleur.conf.dvl \
tr '\\n' ' ' `
dbgsend : clean debug
+ @ rm -fr $(TESTDIR)/var/spool/$(APPNAME)/queue
+ @ mkdir -p $(TESTDIR)/var/spool/$(APPNAME)/queue
@ cp -a \
- ./data-$@/* \
+ ./data-sender/* \
$(TESTDIR)/var/spool/$(APPNAME)/queue/
@ gdb \
--args \
- bin/sender \
- -f \
- -d2 \
- -c ./conf/mailleur.conf.dvl \
- -r $(TESTDIR)
+ bin/sender \
+ -d2 \
+ -c ./conf/mailleur.conf.dvl \
+ -r $(TESTDIR) \
+ `basename -a data-sender/*.todo | \
+ tr '\\n' ' ' `
#--------------------------------------------------------------------
#testing feed
-d 2 \
$(TESTPROT):$(TESTIP):$(TESTPORT):
-dorcvr : debug
+dorcvr :
@ bin/emlrcvr \
$(EMLPAR)$(TESTITER)
@ echo "--------------"
@ echo "starting $@"
@ $(TESTDIR)/$(SBINDIR)/$@ \
+ -f \
$(EMLPAR)$(TESTITER)
@ echo "--------------"
`cat $(LOCKDIR)/emlrcvr.lock`; \
fi
-prepare : debug newtest
+prepare : clean debug newtest
#to kill all remaining emlrcvr process
killall :
sorter.o: sorter.c \
../lib/geseml.h \
+ ../lib/unisig.h \
+ ../lib/uniprc.h \
+ ../lib/unipar.h \
+ ../lib/unieml.h \
../lib/subrou.h
sender.o: sender.c \
../lib/geseml.h \
../lib/unieml.h \
../lib/unipar.h \
+ ../lib/uniprc.h \
../lib/unisig.h \
../lib/subrou.h
case 2 : //sett lock
if (foreground==false) {
if (prc_divedivedive()!=0)
- exit(0);
+ phase=999; //direct exit
}
else
(void) fprintf(stdout,"Running application in foreground\n");
#include "subrou.h"
#include "unieml.h"
#include "unipar.h"
+#include "uniprc.h"
#include "unisig.h"
#include "geseml.h"
#include "lvleml.h"
{
#define OPEP "sender.c:main,"
+
int status;
ARGTYP *params;
int phase;
status=0;
params=(ARGTYP *)0;
-foreground=true;
+foreground=false;
phase=0;
proceed=true;
while (proceed==true) {
- //(void) fprintf(stdout,"%s JMPDBG main phase='%d'\n",OPEP,phase);
+ //(void) fprintf(stdout,"%s (pid=%08d) JMPDBG phase='%d'\n",OPEP,getpid(),phase);
switch (phase) {
case 0 : //checking parameters
if ((params=par_getparams(argc,argv,"c:d:fh:r:v"))==(ARGTYP *)0) {
(void) rou_setappname(SENDER);
(void) rou_loadconfig(config,true);
(void) openlog(appname,LOG_NDELAY|LOG_PID,LOG_DAEMON);
- (void) closelog();
+ if (foreground==false) {
+ if (prc_divedivedive()!=0)
+ phase=999; //direct exit
+ }
break;
case 3 : //scanning parameters list
if (params!=(ARGTYP *)0) { //always
char *ptr;
fname=params->argv[num];
- (void) rou_alert(0,"%s fname file <%s>",appname,fname);
+ (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",SENDER,fname);
+ (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>",
- SENDER,fname,ptr);
+ OPEP,fname,ptr);
break;
}
(void) rou_alert(0,"%s scanning file <%s>",appname,fname);
#include "subrou.h"
#include "unieml.h"
#include "unipar.h"
+#include "uniprc.h"
#include "unisig.h"
#include "geseml.h"
(void) rou_setappname(SORTER);
(void) rou_loadconfig(config,true);
(void) openlog(appname,LOG_NDELAY|LOG_PID,LOG_DAEMON);
+ if (foreground==false) {
+ if (prc_divedivedive()!=0)
+ phase=999; //direct exit
+ }
break;
case 2 : //check about signal process
+ (void) sleep(5);
if (hangup==true) {
(void) rou_alert(0,"%s got hangup signal",OPEP);
phase=999; //exiting loop
(void) scantrans(EXDONE,false);
break;
case 5 : //one shot deal??
- if (foreground==false) {
- (void) sleep(5);
+ if (foreground==false)
phase=1; //restarting
- }
break;
default : //end of task
params=par_freeparams(params);
OPEP,strerror(errno));
break;
case 0 : //the forked process
- int exitval;
char *execpath;
char *argv[10];
char buffer[300];
- exitval=0;
(void) memset(argv,'\000',sizeof(argv));
(void) snprintf(buffer,sizeof(buffer),"%s%s",SBINDIR,SENDER);
execpath=rou_apppath(buffer);
if (execv(execpath,argv)<0) {
(void) rou_alert(0,"%s Unable to exec process=<%s> (error=<%s> Bug?)",
OPEP,execpath,strerror(errno));
- exitval=-1;
+ (void) rou_freestr(execpath);
+ (void) system("ls -ails /home/jmp/safe-mailleur/mailleur/test_area/var/spool/mailleur/queue/");
+ (void) exit(-1);
}
- (void) rou_freestr(execpath);
- (void) exit(exitval);
break;
- default : //the forking process itself
+ default : //the forking process itself
(void) usleep(10000); //relax delay
status=true;
break;
{
#define OPEP "lvleml.c:eml_remote_email,"
-(void) rou_alert(0,"%s JMPDBG",OPEP);
+(void) rou_alert(0,"%s JMPDBG foreground='%d'",OPEP,foreground);
#undef OPEP
}
(void) snprintf(fold,sizeof(fold),"%s/%s.%s",filename,qfilename,oldext);
(void) snprintf(fnew,sizeof(fnew),"%s/%s.%s",filename,qfilename,newext);
if (rename(fold,fnew)<0) {
+ char *cwd;
+
+ cwd=get_current_dir_name();
(void) rou_alert(0,"%s Unable to rename file <%s> to <%s> (error=<%s>)",
OPEP,fold,fnew,strerror(errno));
+ (void) rou_alert(0,"%s current working dir=<%s>",OPEP,cwd);
+ cwd=rou_freestr(cwd);
status=false;
}
filename=rou_freestr(filename);