/* procedure to scan all files */
/* */
/********************************************************/
-static _Bool scantrans()
+static _Bool scantrans(const char *ext,_Bool todo)
{
#define OPEP "sorter.c:scantrans,"
phase=0;
proceed=true;
while (proceed==true) {
+ //(void) fprintf(stdout,"%s JMPDBG phase='%d'\n",OPEP,phase);
switch (phase) {
case 0 : //Getting the list of file
- fname=eml_getqfilelist(fname,EXTRANS);
+ fname=eml_getqfilelist(fname,ext);
if (fname==(char **)0)
phase=999; //Nothing to do
break;
case 1 : //Building the "trans" list
- if (fname!=(char **)0) { //walways
+ if (fname!=(char **)0) { //always
char **ptr;
ptr=fname;
}
break;
case 2 : //scanning translit
- if (trans!=(TRATYP **)0) {
- TRATYP **ptr;
-
- ptr=trans;
- (void) eml_todoqfile(ptr);
- trans=(TRATYP **)rou_freelist((void **)trans,(genfree_t)eml_freetra);
- status=true;
+ switch (todo) {
+ case true : //Doing todo file
+ status=eml_todoqfile(trans);
+ break;
+ case false :
+ status=eml_doneqfile(trans);
+ break;
}
+ trans=(TRATYP **)rou_freelist((void **)trans,(genfree_t)eml_freetra);
break;
default : //SAFE Guard
proceed=false;
if ((hangup==true)||(reload==true))
phase=999; //Process
break;
- case 3 : //Scanning all file
- if (scantrans()==false)
+ case 3 : //Scanning all ".trans" file
+ if (scantrans(EXTRANS,true)==false)
+ phase=999;
+ break;
+ case 4 : //Scanning all ".done" file
+ if (scantrans(EXDONE,false)==false)
phase=999;
break;
- case 4 : //one shot deal??
+ case 5 : //one shot deal??
if (foreground==false) {
(void) sleep(5);
phase=1; //restarting
(void) fprintf(qfile,"#'C', completed email task\n");
(void) fprintf(qfile,"#'D', delayed email\n");
(void) fprintf(qfile,"#'L', Local email\n");
+ (void) fprintf(qfile,"#'O', Obsolete email\n");
(void) fprintf(qfile,"#'R', Remote email\n");
}
while (*tra!=(TRATYP *)0) {
done=false;
domlist=(REFTYP **)0;
-while (*list!=(TRATYP *)0) {
- domlist=sortref(domlist,*list);
- list++;
+if (list!=(TRATYP **)0) {
+ while (*list!=(TRATYP *)0) {
+ domlist=sortref(domlist,*list);
+ list++;
+ }
}
if (domlist!=(REFTYP **)0) {
int iter;
break;
case 3 : //file ready, renaming file,
(void) eml_renameqfile(qname,EXTOBE,EXTODO);
+ done=true;
break;
default : //SAFE Guard
proceed=false;
(void) free(domlist);
}
return done;
+
#undef EXTOBE
+#undef OPEP
+}
+/*
+\f
+*/
+/********************************************************/
+/* */
+/* Procedure to clean/remove 'done' file. */
+/* */
+/********************************************************/
+PUBLIC _Bool eml_doneqfile(TRATYP **list)
+
+{
+#define OPEP "geseml.c:eml_doneqfile,"
+
+_Bool check;
+
+check=true;
+(void) rou_alert(0,"%s JMPDBG check done",OPEP);
+return check;
+
#undef OPEP
}
/*
//procedure to Generate todolist file within queue
extern _Bool eml_todoqfile(TRATYP **list);
+//procedure to clean/remove done file within queue
+extern _Bool eml_doneqfile(TRATYP **list);
+
//procedure to store an email to the local email storage area
extern _Bool eml_store_email(TRATYP *tra);
/* Return a list or NULL if no file. */
/* */
/********************************************************/
-PUBLIC char **eml_getqfilelist(char **dnames,char *ext)
+PUBLIC char **eml_getqfilelist(char **dnames,const char *ext)
{
#define OPEP "unieml.c:eml_getqfilelist"
//Procedure to list all file within queue directory
//and with a specific extenstion
-extern char **eml_getqfilelist(char **dnames,char *ext);
+extern char **eml_getqfilelist(char **dnames,const char *ext);
//procedure to open a specific qfile
extern FILE *eml_openqfile(char *qfilename,const char *ext);