|
@@ -406,20 +406,55 @@ int markElt(int i, int v) |
|
|
return 1; |
|
|
return 1; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
void listElt(void) |
|
|
|
|
|
|
|
|
void listElt(char c) |
|
|
{ |
|
|
{ |
|
|
int i; |
|
|
|
|
|
for (i=0; i<iT; i++) |
|
|
|
|
|
printf("%d : %s (%d)\n",Tno[i], Turl[i], Trv[i]); |
|
|
|
|
|
|
|
|
int i,n=0; |
|
|
|
|
|
switch (c) { |
|
|
|
|
|
case '-': |
|
|
|
|
|
for (i=0; i<iT; i++) |
|
|
|
|
|
if (Tno[i]<0) { printf("%d : %s (%d)\n",Tno[i], Turl[i], Trv[i]); |
|
|
|
|
|
n++; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
case '+': |
|
|
|
|
|
for (i=0; i<iT; i++) |
|
|
|
|
|
if (Tno[i]>0) { printf("%d : %s (%d)\n",Tno[i], Turl[i], Trv[i]); |
|
|
|
|
|
n++; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
default: |
|
|
|
|
|
for (i=0; i<iT; i++) { |
|
|
|
|
|
printf("%d : %s (%d)\n",Tno[i], Turl[i], Trv[i]); |
|
|
|
|
|
n++; |
|
|
|
|
|
} |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
printf(" %d elements trouves.\n",n); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
int comsh(char *com) |
|
|
|
|
|
{ |
|
|
|
|
|
pid_t pid; |
|
|
|
|
|
int ret; |
|
|
|
|
|
if ((pid = fork()) < 0) { |
|
|
|
|
|
perror("fork2"); return 99; |
|
|
|
|
|
} |
|
|
|
|
|
if (pid == 0) { |
|
|
|
|
|
signal(SIGINT,SIG_IGN); |
|
|
|
|
|
execl("/bin/sh", "sh", "-c", com, (char *) 0); |
|
|
|
|
|
perror("execl2"); return 98; |
|
|
|
|
|
} |
|
|
|
|
|
waitpid(pid,&ret,0); |
|
|
|
|
|
return WEXITSTATUS(ret); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
int exeCom(char * comm) /* on se reserve le droit de modifier */ |
|
|
int exeCom(char * comm) /* on se reserve le droit de modifier */ |
|
|
{ |
|
|
{ |
|
|
char b[120]; |
|
|
char b[120]; |
|
|
sprintf(b,"%s >/dev/null 2>&1",comm); |
|
|
sprintf(b,"%s >/dev/null 2>&1",comm); |
|
|
return system(b); |
|
|
|
|
|
|
|
|
return comsh(b); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
/* ### fct de MAJ iptables */ |
|
|
/* ### fct de MAJ iptables */ |
|
@@ -575,7 +610,7 @@ FILE * fw; |
|
|
static int NBin=0, NBout=0; |
|
|
static int NBin=0, NBout=0; |
|
|
void prInOut(void) |
|
|
void prInOut(void) |
|
|
{ |
|
|
{ |
|
|
printf("%d echanges DNS : %d requetes, %d reponses.\n",NBout+NBin,NBout,NBin); |
|
|
|
|
|
|
|
|
printf(" %d messages DNS: %d requetes, %d reponses.\n",NBout+NBin,NBout,NBin); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
int printQ(char * q) |
|
|
int printQ(char * q) |
|
@@ -615,150 +650,159 @@ pid_t pid; |
|
|
fauth = (char*)p; |
|
|
fauth = (char*)p; |
|
|
pid = getpid(); |
|
|
pid = getpid(); |
|
|
read_history(FHISTO); |
|
|
read_history(FHISTO); |
|
|
if (REPR) system("reset"); |
|
|
|
|
|
|
|
|
if (REPR) comsh("reset"); |
|
|
while (REQ) { |
|
|
while (REQ) { |
|
|
if (kill(pid,SIGUSR1) < 0) { /* verif processus acquisition */ |
|
|
|
|
|
ENDT=1; |
|
|
|
|
|
write(p1[1],"\n",1); |
|
|
|
|
|
} |
|
|
|
|
|
free(cmd); |
|
|
|
|
|
cmd = readline("O-> "); |
|
|
|
|
|
if ((n2 = strlen(cmd)) > 0) { |
|
|
|
|
|
write(p1[1],"\n",1); |
|
|
|
|
|
add_history(cmd); |
|
|
|
|
|
switch (*cmd) { |
|
|
|
|
|
case '+' : |
|
|
|
|
|
if (*(cmd+1) != '\0') { |
|
|
|
|
|
if (litligne(cmd+1)) { /* ajout au fichier fauth */ |
|
|
|
|
|
if (debloqueIP(cmd+1,NULL)) printf("Element non valable !\n"); |
|
|
|
|
|
else { |
|
|
|
|
|
if (printQ("ajouter au fichier parametres")) |
|
|
|
|
|
ajoutParam(fauth,cmd+1); |
|
|
|
|
|
listeAllow(); |
|
|
|
|
|
} |
|
|
|
|
|
} else printf("Erreur ajout param. !\n"); |
|
|
|
|
|
} else listeAllow(); |
|
|
|
|
|
break; |
|
|
|
|
|
case '-' : |
|
|
|
|
|
if (*(cmd+1) != '\0') { |
|
|
|
|
|
if (litligne(cmd)) { /* ajout au fichier fauth */ |
|
|
|
|
|
if (rebloqueIP(cmd+1)) printf("Element non valable !\n"); |
|
|
|
|
|
else { |
|
|
|
|
|
if (printQ("ajouter au fichier parametres")) |
|
|
|
|
|
ajoutParam(fauth,cmd); |
|
|
|
|
|
listeDeny(); |
|
|
|
|
|
} |
|
|
|
|
|
} else printf("Erreur ajout param. !\n"); |
|
|
|
|
|
} else listeDeny(); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'l' : |
|
|
|
|
|
listElt(); |
|
|
|
|
|
printf("%sReste %d elts (Max. %d)!\n",ctime(&tim1),iT,MaxElt); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case 't' : |
|
|
|
|
|
if (*(cmd+1) != '\0') { |
|
|
|
|
|
if ((cmd[1] == '+') || (cmd[1] == '-')) { |
|
|
|
|
|
if ((cmd[1] == '+') && (Trace < TMAX)) Trace++; |
|
|
|
|
|
else { |
|
|
|
|
|
if ((cmd[1] == '-') && (Trace > TMIN)) Trace--; |
|
|
|
|
|
else printf("Erreur: niveau dans [%d, %d].\n",TMIN,TMAX); |
|
|
|
|
|
} |
|
|
|
|
|
} else printf("Erreur: Utiliser t+ ou t- !\n"); |
|
|
|
|
|
|
|
|
if (kill(pid,SIGUSR1) < 0) { /* verif processus acquisition */ |
|
|
|
|
|
ENDT=1; |
|
|
|
|
|
write(p1[1],"\n",1); |
|
|
|
|
|
} |
|
|
|
|
|
free(cmd); |
|
|
|
|
|
cmd = readline("O-> "); |
|
|
|
|
|
if ((n2 = strlen(cmd)) > 0) { |
|
|
|
|
|
write(p1[1],"\n",1); |
|
|
|
|
|
add_history(cmd); |
|
|
|
|
|
switch (*cmd) { |
|
|
|
|
|
case '+' : |
|
|
|
|
|
if (*(cmd+1) != '\0') { |
|
|
|
|
|
if (litligne(cmd+1)) { /* ajout au fichier fauth */ |
|
|
|
|
|
if (debloqueIP(cmd+1,NULL)) printf("Element non valable !\n"); |
|
|
|
|
|
else { |
|
|
|
|
|
if (printQ("ajouter au fichier parametres")) |
|
|
|
|
|
ajoutParam(fauth,cmd+1); |
|
|
|
|
|
listeAllow(); |
|
|
} |
|
|
} |
|
|
printf("Trace niveau %d\n",Trace); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'a' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s%s%s",NPROG,pid,".* ok",CHLOG,CUT6,SUNIC); |
|
|
|
|
|
system(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'i' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s%s%s",NPROG,pid,".* DENY",CHLOG,CUT6,SUNIC); |
|
|
|
|
|
system(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'e' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s%s%s",NPROG,pid,".* ACCEPT",CHLOG,CUT6,SUNIC); |
|
|
|
|
|
system(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'E' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s",NPROG,pid,".*ERR: ",CHLOG); |
|
|
|
|
|
system(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'L' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s",NPROG,pid,CHLOGREP,"-v 'Re[pq]. '"); |
|
|
|
|
|
system(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'T' : |
|
|
|
|
|
if (*(cmd+1) != '\0') |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\].*%s' %s%s",NPROG,pid,cmd+1,CHLOGREP," 'Re[pq]. '"); |
|
|
|
|
|
else |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s",NPROG,pid,CHLOGREP," 'Re[pq]. '"); |
|
|
|
|
|
system(com); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case '>' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s%s%s",NPROG,pid,CHLOGREP," 'Req. '",CUT7S,SUNIC); |
|
|
|
|
|
system(com); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case '<' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s%s%s",NPROG,pid,CHLOGREP," 'Rep. '",CUT7S,SUNIC); |
|
|
|
|
|
system(com); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'r' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"%s -L|grep %s%s%s",IPT,DREJ,AWK5,SUNIC); |
|
|
|
|
|
pr_encours(); |
|
|
|
|
|
system(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'R' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"%s -L|grep %s%s%s",IP6T,DREJ,AWK4,SUNIC); |
|
|
|
|
|
pr_encours(); |
|
|
|
|
|
system(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'S' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
RUN = 0; |
|
|
|
|
|
REQ = 0; |
|
|
|
|
|
write(p1[1],"\n",1); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'V' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
printf("Version %s\n",Version); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case ' ' : |
|
|
|
|
|
if (*(cmd+1) != '\0') system(cmd+1); |
|
|
|
|
|
break; |
|
|
|
|
|
default : |
|
|
|
|
|
printf("+url\t: Allow (autoriser une Url)\n"); |
|
|
|
|
|
printf("-url\t: Deny (interdire une Url)\n"); |
|
|
|
|
|
printf("a\t: Autorisations suivant analyse\n"); |
|
|
|
|
|
printf("i\t: Interdictions suivant analyse\n"); |
|
|
|
|
|
printf("e\t: Exceptions suivant analyse\n"); |
|
|
|
|
|
printf("E\t: Liste des erreurs\n"); |
|
|
|
|
|
printf("l\t: Liste des elements dynamiques\n"); |
|
|
|
|
|
printf("L\t: Logs du systeme\n"); |
|
|
|
|
|
printf("r\t: Rejets actifs IPv4 (dure plusieurs sec.)\n"); |
|
|
|
|
|
printf("R\t: Rejets actifs IPv6 (dure plusieurs sec.)\n"); |
|
|
|
|
|
printf("S\t: Stopper\n"); |
|
|
|
|
|
printf("t+|-\t: Niveau de trace : 0 (off) => 3\n"); |
|
|
|
|
|
printf("T[mot]\t: Traces des demandes/reponses contenant mot\n"); |
|
|
|
|
|
printf(">\t: Traces des demandes triees\n"); |
|
|
|
|
|
printf("<\t: Traces des reponses triees\n"); |
|
|
|
|
|
printf("V\t: Version\n"); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
} else printf("Erreur ajout param. !\n"); |
|
|
|
|
|
} else listeAllow(); |
|
|
|
|
|
break; |
|
|
|
|
|
case '-' : |
|
|
|
|
|
if (*(cmd+1) != '\0') { |
|
|
|
|
|
if (litligne(cmd)) { /* ajout au fichier fauth */ |
|
|
|
|
|
if (rebloqueIP(cmd+1)) printf("Element non valable !\n"); |
|
|
|
|
|
else { |
|
|
|
|
|
if (printQ("ajouter au fichier parametres")) |
|
|
|
|
|
ajoutParam(fauth,cmd); |
|
|
|
|
|
listeDeny(); |
|
|
|
|
|
} |
|
|
|
|
|
} else printf("Erreur ajout param. !\n"); |
|
|
|
|
|
} else listeDeny(); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'l' : |
|
|
|
|
|
listElt(cmd[1]); |
|
|
|
|
|
printf(" %s Utilise %d elts/%d : %.2f%% (Max. %d)!\n",ctime(&tim1),iT, |
|
|
|
|
|
NBT, (float)(iT*100)/(float)NBT, MaxElt); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case 't' : |
|
|
|
|
|
if (*(cmd+1) != '\0') { |
|
|
|
|
|
if ((cmd[1] == '+') || (cmd[1] == '-')) { |
|
|
|
|
|
if ((cmd[1] == '+') && (Trace < TMAX)) Trace++; |
|
|
|
|
|
else { |
|
|
|
|
|
if ((cmd[1] == '-') && (Trace > TMIN)) Trace--; |
|
|
|
|
|
else printf("Erreur: niveau dans [%d, %d].\n",TMIN,TMAX); |
|
|
|
|
|
} |
|
|
|
|
|
} else printf("Erreur: Utiliser t+ ou t- !\n"); |
|
|
|
|
|
} |
|
|
|
|
|
printf(" Trace niveau %d\n",Trace); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'a' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s%s%s",NPROG,pid,".* ok", |
|
|
|
|
|
CHLOG,CUT6,SUNIC); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'i' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s%s%s",NPROG,pid,".* DENY", |
|
|
|
|
|
CHLOG,CUT6,SUNIC); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'e' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s%s%s",NPROG,pid,".* ACCEPT", |
|
|
|
|
|
CHLOG,CUT6,SUNIC); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'E' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]%s' %s",NPROG,pid,".*ERR: ",CHLOG); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'L' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s",NPROG,pid, |
|
|
|
|
|
CHLOGREP,"-v 'Re[pq]. '"); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'T' : |
|
|
|
|
|
if (*(cmd+1) != '\0') |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\].*%s' %s%s",NPROG,pid,cmd+1, |
|
|
|
|
|
CHLOGREP," 'Re[pq]. '"); |
|
|
|
|
|
else |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s",NPROG,pid, |
|
|
|
|
|
CHLOGREP," 'Re[pq]. '"); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case '>' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s%s%s",NPROG,pid, |
|
|
|
|
|
CHLOGREP," 'Req. '",CUT7S,SUNIC); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case '<' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"grep '%s\\[%d\\]' %s%s%s%s",NPROG,pid, |
|
|
|
|
|
CHLOGREP," 'Rep. '",CUT7S,SUNIC); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'r' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"%s -L|grep %s%s%s",IPT,DREJ,AWK5,SUNIC); |
|
|
|
|
|
pr_encours(); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'R' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
sprintf(com,"%s -L|grep %s%s%s",IP6T,DREJ,AWK4,SUNIC); |
|
|
|
|
|
pr_encours(); |
|
|
|
|
|
comsh(com); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'S' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
RUN = 0; |
|
|
|
|
|
REQ = 0; |
|
|
|
|
|
write(p1[1],"\n",1); |
|
|
|
|
|
break; |
|
|
|
|
|
case 'V' : |
|
|
|
|
|
if (*(cmd+1) != '\0') printf("ignore %s\n",cmd+1); |
|
|
|
|
|
printf("Version %s\n",Version); |
|
|
|
|
|
prInOut(); |
|
|
|
|
|
break; |
|
|
|
|
|
case ' ' : |
|
|
|
|
|
if (*(cmd+1) != '\0') comsh(cmd+1); |
|
|
|
|
|
break; |
|
|
|
|
|
default : |
|
|
|
|
|
printf("+url\t: Allow (autoriser une Url)\n"); |
|
|
|
|
|
printf("-url\t: Deny (interdire une Url)\n"); |
|
|
|
|
|
printf("a\t: Autorisations suivant analyse\n"); |
|
|
|
|
|
printf("i\t: Interdictions suivant analyse\n"); |
|
|
|
|
|
printf("e\t: Exceptions suivant analyse\n"); |
|
|
|
|
|
printf("E\t: Liste des erreurs\n"); |
|
|
|
|
|
printf("l[+|-]\t: Liste des elements dynamiques\n"); |
|
|
|
|
|
printf("L\t: Logs du systeme\n"); |
|
|
|
|
|
printf("r\t: Rejets actifs IPv4 (dure plusieurs sec.)\n"); |
|
|
|
|
|
printf("R\t: Rejets actifs IPv6 (dure plusieurs sec.)\n"); |
|
|
|
|
|
printf("S\t: Stopper\n"); |
|
|
|
|
|
printf("t+|-\t: Niveau de trace : 0 (off) => 3\n"); |
|
|
|
|
|
printf("T[mot]\t: Traces des demandes/reponses contenant mot\n"); |
|
|
|
|
|
printf(">\t: Traces des demandes triees\n"); |
|
|
|
|
|
printf("<\t: Traces des reponses triees\n"); |
|
|
|
|
|
printf("V\t: Version\n"); |
|
|
|
|
|
break; |
|
|
|
|
|
} |
|
|
|
|
|
} |
|
|
} |
|
|
} |
|
|
write_history(FHISTO); |
|
|
write_history(FHISTO); |
|
|
free(cmd); |
|
|
free(cmd); |
|
@@ -1018,8 +1062,9 @@ int Inter=0, LogC=0, i, ie, np=0, opt; |
|
|
REQ = 0; |
|
|
REQ = 0; |
|
|
break; |
|
|
break; |
|
|
case 'L' : |
|
|
case 'L' : |
|
|
printf("Reste %d elts !\n",iT); |
|
|
|
|
|
listElt(); |
|
|
|
|
|
|
|
|
listElt(cmd[1]); |
|
|
|
|
|
printf(" %s Utilise %d elts/%d : %.2f%% (Max. %d)!\n", |
|
|
|
|
|
ctime(&tim1),iT,NBT,(float)(iT*100)/(float)NBT,MaxElt); |
|
|
break; |
|
|
break; |
|
|
case 'S' : |
|
|
case 'S' : |
|
|
RUN = 0; |
|
|
RUN = 0; |
|
@@ -1042,7 +1087,7 @@ int Inter=0, LogC=0, i, ie, np=0, opt; |
|
|
close(p1[1]); |
|
|
close(p1[1]); |
|
|
closelog(); |
|
|
closelog(); |
|
|
if (ENDT) { /* relance auto */ |
|
|
if (ENDT) { /* relance auto */ |
|
|
system("reset"); |
|
|
|
|
|
|
|
|
comsh("reset"); |
|
|
if (T1) printf("Relance auto %s dans %d sec. ...\n",strPID, DELAYR); |
|
|
if (T1) printf("Relance auto %s dans %d sec. ...\n",strPID, DELAYR); |
|
|
sleep(DELAYR); /* attend N s */ |
|
|
sleep(DELAYR); /* attend N s */ |
|
|
NP = (char**)malloc((sizeof(Pars))*(N+3)); |
|
|
NP = (char**)malloc((sizeof(Pars))*(N+3)); |
|
|