phase++;
}
return done;
+#undef OPEP
+}
+/*
+\f
+*/
+/************************************************/
+/* */
+/* Procedure to set create the sessid count*/
+/* file. This file is used to keep track */
+/* of the number of the sessionid|(rcpt) */
+/* used to send email to all recipient. */
+/* */
+/************************************************/
+static _Bool setcountfile(CONTYP *contact)
+
+{
+#define OPEP "lvleml.c:setcountfile,"
+
+_Bool status;
+int num;
+FILE *qfile;
+int phase;
+_Bool proceed;
+
+status=false;
+num=0;
+qfile=(FILE *)0;
+phase=0;
+proceed=true;
+while (proceed==true) {
+ switch (phase) {
+ case 0 : //is contact good
+ if (contact==(CONTYP *)0) {
+ (void) rou_alert(0,"%s contact pointer is NULL (bug?)",OPEP);
+ phase=999;
+ }
+ break;
+ case 1 : //counting recipient number
+ if ((num=rou_nbrlist((void **)contact->recipients))==0)
+ phase=999; //No recipient!
+ break;
+ case 2 : //creating the count file
+ if ((qfile=eml_createqfile(contact->cursesid,EXTCNT))==(FILE *)0) {
+ (void) rou_alert(0,"%s Unable to open 'count' qfile <%s> (error=<%s>)",
+ OPEP,contact->cursesid,strerror(errno));
+ phase=999;
+ }
+ break;
+ case 3 : //inserting number of receipient
+ if (fprintf(qfile,"%d\n",num)<1) {
+ (void) rou_alert(0,"%s Unable to set 'count' in qfile <%s> (error=<%s>)",
+ OPEP,contact->cursesid,strerror(errno));
+ (void) fclose(qfile);
+ phase=999; //trouble trouble
+ }
+ break;
+ case 4 : //closing count file
+ if (fclose(qfile)!=0) {
+ (void) rou_alert(0,"%s Unable to close qfile <%s> (error=<%s>)",
+ OPEP,contact->cursesid,strerror(errno));
+ phase=999; //trouble trouble
+ }
+ break;
+ case 5 : //everything fine
+ status=true;
+ break;
+ default : //SAFE Guard
+ proceed=false;
+ break;
+ }
+ phase++;
+ }
+return status;
+
+
#undef OPEP
}
/*
{
#define OPEP "lvleml.c:getdata,"
+#define EXTMP "tmp"
_Bool done;
FILE *queue;
completed=false;
total=0;
phase=0;
-proceed=setdirectives(contact,"tmp");
+proceed=setdirectives(contact,EXTMP);
while (proceed==true) {
//(void) rou_alert(0,"JMPDBG %s phase='%d'",OPEP,phase);
switch (phase) {
if (eml_closeqfile(queue)<0)
phase=999; //Trouble trouble
break;
- case 5 : //renameing directive
- if (eml_renameqfile(contact->cursesid,"tmp",EXTRANS)==false)
+ case 5 : //creating the count file
+ if (setcountfile(contact)==false)
+ phase=999; //Unable to create count file???
+ break;
+ case 6 : //renameing directive
+ if (eml_renameqfile(contact->cursesid,EXTMP,EXTRANS)==false)
phase=999; //Trouble trouble
break;
- case 6 : //everything fine
+ case 7 : //everything fine
const char *fmt;
unsigned int delta;
phase++;
}
return done;
+
+#undef EXTMP
#undef OPEP
}
/*
//defining extensions
#define EXTODO "todo" //todo qfile extension
-#define EXDONE "done" //todo file processing completed
-#define EXDOING "doing" //todo file in sending mode
+#define EXDONE "done" //todo qfile processing completed
+#define EXDOING "doing" //todo qfile in sending mode
#define EXTRANS "trans" //trans qfile extension
+#define EXTCNT "count" //count sessid by email extension
+#define EXTOBE "tobedone" //in progess qfile extension
+
#define SBINDIR "/usr/sbin/" //appliaction installation directory
#define SENDER "sender" //application email sender