float perc2=0.00;
int posicao=0;
char olduser[MAXLEN], csort[MAXLEN], period[MAXLEN], arqper[MAXLEN];
- char wger[MAXLEN], top1[MAXLEN], top2[MAXLEN], top3[MAXLEN], user[MAXLEN], nacc[20], nbytes[20], url[1024], tusr[MAXLEN];
- char ip[MAXLEN], hora[9], data[11], elap[15], user2[MAXLEN], wperc[8], wperc2[8];
+ char wger[MAXLEN], top1[MAXLEN], top2[MAXLEN], top3[MAXLEN], user[MAXLEN], nacc[20], nbytes[20], url[MAXLEN], tusr[MAXLEN];
+ char ip[MAXLEN], hora[9], data[15], elap[16], user2[MAXLEN], wperc[8], wperc2[8];
char strip1[MAXLEN], strip2[MAXLEN], strip3[MAXLEN], strip4[MAXLEN], strip5[MAXLEN], strip6[MAXLEN], strip7[MAXLEN];
- char incac[16], oucac[16];
+ char incac[30], oucac[30];
int totuser=0;
time_t t;
struct tm *local;
int cstatus;
+ char warea[MAXLEN];
strcpy(wger,dirname);
strcpy(top1,dirname);
exit(1);
}
- fscanf(fp_in,"%s",user);
- fscanf(fp_in,"%s",nacc);
- fscanf(fp_in,"%s",nbytes);
- fscanf(fp_in,"%s",url);
- fscanf(fp_in,"%s",ip);
- fscanf(fp_in,"%s",hora);
- fscanf(fp_in,"%s",data);
- fscanf(fp_in,"%s",elap);
- fscanf(fp_in,"%s",incac);
- fscanf(fp_in,"%s",oucac);
-
- strcpy(olduser,user);
- totuser=1;
-
- while(!feof(fp_in))
+ olduser[0]='\0';
+ totuser=0;
+
+ while(fgets(warea,sizeof(warea),fp_in))
{
+ if (getword(user,sizeof(user),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken user in your %s file.\n",wger);
+ exit(1);
+ }
+ if(strcmp(user,"TOTAL") == 0) {
+ continue;
+ }
+ if (getword(nacc,sizeof(nacc),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken number of access in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(nbytes,sizeof(nbytes),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken number of bytes in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(url,sizeof(url),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken url in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(ip,sizeof(ip),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken source IP address in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(hora,sizeof(hora),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken time in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(data,sizeof(data),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken date in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(elap,sizeof(elap),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken elapsed time in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(incac,sizeof(incac),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken in cache column in your %s file.\n",wger);
+ exit(1);
+ }
+ if (getword(oucac,sizeof(oucac),warea,0)<0) {
+ printf("SARG: Maybe you have a broken not in cache column in your %s file.\n",wger);
+ exit(1);
+ }
if(strcmp(olduser,user) != 0)
{
- if(strcmp(user,"TOTAL") != 0)
- totuser++;
+ totuser++;
+ if (olduser[0] != '\0') {
#if defined(__FreeBSD__)
- fprintf(fp_top2,"%s %15qu %15qu %15qu\n",olduser,tnbytes,tnacc,tnelap);
+ fprintf(fp_top2,"%s %qu %qu %qu\n",olduser,tnbytes,tnacc,tnelap);
#elif defined(__alpha) || __ALPHA
- fprintf(fp_top2,"%s %15ld %15ld %15ld\n",olduser,tnbytes,tnacc,tnelap);
+ fprintf(fp_top2,"%s %ld %ld %ld\n",olduser,tnbytes,tnacc,tnelap);
#else
- fprintf(fp_top2,"%s %15lld %15lld %15lld\n",olduser,tnbytes,tnacc,tnelap);
+ fprintf(fp_top2,"%s %lld %lld %lld\n",olduser,tnbytes,tnacc,tnelap);
#endif
- strcpy(olduser,user);
- ttnbytes=ttnbytes+tnbytes;
- ttnacc=ttnacc+tnacc;
- ttnelap=ttnelap+tnelap;
+ ttnbytes=ttnbytes+tnbytes;
+ ttnacc=ttnacc+tnacc;
+ ttnelap=ttnelap+tnelap;
+ }
+ strcpy(olduser,user);
tnbytes=0;
tnacc=0;
tnelap=0;
tnbytes=tnbytes+atol(nbytes);
tnacc=tnacc+atol(nacc);
tnelap=tnelap+atol(elap);
-
- fscanf(fp_in,"%s",user);
- fscanf(fp_in,"%s",nacc);
- fscanf(fp_in,"%s",nbytes);
- fscanf(fp_in,"%s",url);
- fscanf(fp_in,"%s",ip);
- fscanf(fp_in,"%s",hora);
- fscanf(fp_in,"%s",data);
- fscanf(fp_in,"%s",elap);
- fscanf(fp_in,"%s",incac);
- fscanf(fp_in,"%s",oucac);
-
- if(strcmp(user,"TOTAL") == 0)
- continue;
}
+
+ if (olduser[0] != '\0') {
#if defined(__FreeBSD__)
- fprintf(fp_top2,"%s %15qu %15qu %15qu\n",olduser,tnbytes,tnacc,tnelap);
+ fprintf(fp_top2,"%s %qu %qu %qu\n",olduser,tnbytes,tnacc,tnelap);
#elif defined(__alpha) || __ALPHA
- fprintf(fp_top2,"%s %15ld %15ld %15ld\n",olduser,tnbytes,tnacc,tnelap);
+ fprintf(fp_top2,"%s %ld %ld %ld\n",olduser,tnbytes,tnacc,tnelap);
#else
- fprintf(fp_top2,"%s %15lld %15lld %15lld\n",olduser,tnbytes,tnacc,tnelap);
+ fprintf(fp_top2,"%s %lld %lld %lld\n",olduser,tnbytes,tnacc,tnelap);
#endif
- ttnbytes=ttnbytes+tnbytes;
- ttnacc=ttnacc+tnacc;
- ttnelap=ttnelap+tnelap;
+ ttnbytes=ttnbytes+tnbytes;
+ ttnacc=ttnacc+tnacc;
+ ttnelap=ttnelap+tnelap;
+ }
fclose(fp_in);
fclose(fp_top2);
exit(1);
}
#if defined(__FreeBSD__)
- fprintf(fp_top1,"TOTAL %15qu %15qu %15qu\n",ttnbytes,ttnacc,ttnelap);
+ fprintf(fp_top1,"TOTAL %qu %qu %qu\n",ttnbytes,ttnacc,ttnelap);
#elif defined(__alpha) || __ALPHA
- fprintf(fp_top1,"TOTAL %15ld %15ld %15ld\n",ttnbytes,ttnacc,ttnelap);
+ fprintf(fp_top1,"TOTAL %ld %ld %ld\n",ttnbytes,ttnacc,ttnelap);
#else
- fprintf(fp_top1,"TOTAL %15lld %15lld %15lld\n",ttnbytes,ttnacc,ttnelap);
+ fprintf(fp_top1,"TOTAL %lld %lld %lld\n",ttnbytes,ttnacc,ttnelap);
#endif
fclose(fp_top1);
- if((fp_top1=fopen(top1,"r"))==NULL) {
- fprintf(stderr, "SARG: (email) %s: %s\n",text[45],top1);
- exit(1);
- }
-
- if((fp_top3=fopen(top3,"w"))==NULL) {
- fprintf(stderr, "SARG: (email) %s: %s\n",text[45],top3);
- exit(1);
- }
-
- /*
- * Obtem o period
- */
+ /*
+ * Obtem o period
+ */
strcpy(arqper,dirname);
strcat(arqper,"/sarg-period");
fgets(period,sizeof(period),fp_in);
fclose(fp_in);
+ if((fp_top1=fopen(top1,"r"))==NULL) {
+ fprintf(stderr, "SARG: (email) %s: %s\n",text[45],top1);
+ exit(1);
+ }
+
+ if((fp_top3=fopen(top3,"w"))==NULL) {
+ fprintf(stderr, "SARG: (email) %s: %s\n",text[45],top3);
+ exit(1);
+ }
+
sprintf(strip1,"%s",text[88]);
strip_latin(strip1);
fprintf(fp_top3,"%s\n",strip1);
fprintf(fp_top3,"%-7s %-20s %-8s %-15s %%%-6s %-10s %-10s %%%-7s\n------- -------------------- -------- --------------- ------- ---------- ---------- -------\n",strip1,strip2,strip3,strip4,strip4,strip5,strip6,strip7);
- fscanf(fp_top1,"%s",user);
- fscanf(fp_top1,"%s",nbytes);
- fscanf(fp_top1,"%s",nacc);
- fscanf(fp_top1,"%s",elap);
-
- while(!feof(fp_top1))
+ while(fgets(warea,sizeof(warea),fp_top1))
{
+ if (getword(user,sizeof(user),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken user in your %s file.\n",top1);
+ exit(1);
+ }
+ if (getword(nbytes,sizeof(nbytes),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken number of bytes in your %s file.\n",top1);
+ exit(1);
+ }
+ if (getword(nacc,sizeof(nacc),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken number of access in your %s file.\n",top1);
+ exit(1);
+ }
+ if (getword(elap,sizeof(elap),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken elapsed time in your %s file.\n",top1);
+ exit(1);
+ }
- if(strstr(user,"_") != 0)
+ if(strchr(user,'_') != NULL)
fixip(user);
strcpy(user2,user);
sprintf(wperc,"%3.2f%%",perc);
sprintf(wperc2,"%3.2f%%",perc2);
- if(strstr(user,"TOTAL") != 0){
+ if(strcmp(user,"TOTAL") == 0){
fputs("------- -------------------- -------- --------------- ------- ---------- ---------- -------\n",fp_top3);
#if defined(__FreeBSD__)
fprintf(fp_top3,"%-7s %20s %8qu %15s %8s %9s %10qu\n",text[107]," ",ttnacc,fixnum(ttnbytes,1)," ",buildtime(ttnelap),ttnelap);
fprintf(fp_top3,"%7d %20s %8s %15s %7s %10s %10lld %7s\n",posicao,user2,nacc,fixnum(tnbytes,1),wperc,buildtime(tnelap),tnelap,wperc2);
#endif
}
-
- fscanf(fp_top1,"%s",user);
- fscanf(fp_top1,"%s",nbytes);
- fscanf(fp_top1,"%s",nacc);
- fscanf(fp_top1,"%s",elap);
}
if(ttnbytes) {
exit(1);
}
}
-
+
sprintf(csort,"rm -rf %s/sarg",TempDir);
system(csort);
exit(1);
}
- //fscanf(fp_in,"%s%s%s%s%s%s%s%s%s%s",user,nacc,nbytes,url,ip,time,date,elap,incac,oucac);
- fgets(warea,sizeof(warea),fp_in);
- if (getword(user,sizeof(user),warea,' ')<0) {
- printf("SARG: Maybe you have a broken user in your %s file.\n",wger);
- exit(1);
- }
-
- strcpy(olduser,user);
- totuser=1;
+ olduser[0]='\0';
+ totuser=0;
- while(!feof(fp_in)) {
+ while(fgets(warea,sizeof(warea),fp_in)) {
+ if (getword(user,sizeof(user),warea,' ')<0) {
+ printf("SARG: Maybe you have a broken user in your %s file.\n",wger);
+ exit(1);
+ }
+ if(strcmp(user,"TOTAL") == 0) {
+ continue;
+ }
if (getword(nacc,sizeof(nacc),warea,' ')<0) {
printf("SARG: Maybe you have a broken number of access in your %s file.\n",wger);
exit(1);
exit(1);
}
if(strcmp(olduser,user) != 0) {
- if(strcmp(user,"TOTAL") != 0)
- totuser++;
-
- my_lltoa(tnbytes,val1,15);
- my_lltoa(tnacc,val2,15);
- my_lltoa(tnelap,val3,15);
- my_lltoa(tnincache,val4,15);
- my_lltoa(tnoucache,val5,15);
- fprintf(fp_top2,"%s %s %s %s %s %s\n",olduser,val1,val2,val3,val4,val5);
-
+ totuser++;
+
+ if (olduser[0] != '\0') {
+ my_lltoa(tnbytes,val1,15);
+ my_lltoa(tnacc,val2,15);
+ my_lltoa(tnelap,val3,15);
+ my_lltoa(tnincache,val4,15);
+ my_lltoa(tnoucache,val5,15);
+ fprintf(fp_top2,"%s %s %s %s %s %s\n",olduser,val1,val2,val3,val4,val5);
+
+ ttnbytes+=tnbytes;
+ ttnacc+=tnacc;
+ ttnelap+=tnelap;
+ ttnincache+=tnincache;
+ ttnoucache+=tnoucache;
+ }
strcpy(olduser,user);
- ttnbytes+=tnbytes;
- ttnacc+=tnacc;
- ttnelap+=tnelap;
- ttnincache+=tnincache;
- ttnoucache+=tnoucache;
tnbytes=0;
tnacc=0;
tnelap=0;
tnelap+=my_atoll(elap);
tnincache+=my_atoll(incac);
tnoucache+=my_atoll(oucac);
-
- //fscanf(fp_in,"%s%s%s%s%s%s%s%s%s%s",user,nacc,nbytes,url,ip,time,date,elap,incac,oucac);
- fgets(warea,sizeof(warea),fp_in);
- if (getword(user,sizeof(user),warea,' ')<0) {
- printf("SARG: Maybe you have a broken record or garbage in your %s file.\n",wger);
- exit(1);
- }
-
- if(strcmp(user,"TOTAL") == 0)
- continue;
}
- my_lltoa(tnbytes,val1,15);
- my_lltoa(tnacc,val2,15);
- my_lltoa(tnelap,val3,15);
- my_lltoa(tnincache,val4,15);
- my_lltoa(tnoucache,val5,15);
- fprintf(fp_top2,"%s %s %s %s %s %s\n",olduser,val1,val2,val3,val4,val5);
+ if (olduser[0] != '\0') {
+ my_lltoa(tnbytes,val1,15);
+ my_lltoa(tnacc,val2,15);
+ my_lltoa(tnelap,val3,15);
+ my_lltoa(tnincache,val4,15);
+ my_lltoa(tnoucache,val5,15);
+ fprintf(fp_top2,"%s %s %s %s %s %s\n",olduser,val1,val2,val3,val4,val5);
+
+ ttnbytes+=tnbytes;
+ ttnacc+=tnacc;
+ ttnelap+=tnelap;
+ ttnincache+=tnincache;
+ ttnoucache+=tnoucache;
- ttnbytes+=tnbytes;
- ttnacc+=tnacc;
- ttnelap+=tnelap;
- ttnincache+=tnincache;
- ttnoucache+=tnoucache;
+ }
my_lltoa(ttnbytes,val1,15);
my_lltoa(ttnacc,val2,15);
fprintf(fp_top1,"TOTAL %s %s %s %s %s\n",val1,val2,val3,val4,val5);
fclose(fp_top1);
- if((fp_top1=fopen(top1,"r"))==NULL) {
- fprintf(stderr, "SARG: (topuser) %s: %s\n",text[45],top1);
- exit(1);
- }
-
- if((fp_top3=fopen(top3,"w"))==NULL) {
- fprintf(stderr, "SARG: (topuser) %s: %s\n",text[45],top3);
- exit(1);
- }
-
- /*
- * get period
- */
+ /*
+ * get period
+ */
strcpy(arqper,dirname);
strcat(arqper,"/sarg-period");
fgets(period,sizeof(period),fp_in);
fclose(fp_in);
+ if((fp_top1=fopen(top1,"r"))==NULL) {
+ fprintf(stderr, "SARG: (topuser) %s: %s\n",text[45],top1);
+ exit(1);
+ }
+
+ if((fp_top3=fopen(top3,"w"))==NULL) {
+ fprintf(stderr, "SARG: (topuser) %s: %s\n",text[45],top3);
+ exit(1);
+ }
+
fprintf(fp_top3, "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 Transitional//EN\" \"http://www.w3.org/TR/html4/loose.dtd\">\n<html>\n<head>\n <meta http-equiv=\"Content-Type\" content=\"text/html; charset=%s\">\n",CharSet);
css(fp_top3);
fprintf(fp_top3,"</head>\n<body class=\"body\">");
if (fp_top3) fclose (fp_top3);
return;
}
- strcpy(val1,text[100]);
- strcpy(val2,text[98]);
- strcpy(val3,text[92]);
- strcpy(val4,text[93]);
- sprintf(val11,"%%%s",text[93]);
- sprintf(val5,"%s-%s-%s",text[113],text[114],text[112]);
- strcpy(val6,text[94]);
- strcpy(val7,text[95]);
- sprintf(val8,"%%%s",text[99]);
- strcpy(val9,"colspan=2");
- bzero(val10, 255);
-
- strcpy(hbc1,"class=\"header\"");
- strcpy(hbc2,"class=\"header\"");
- strcpy(hbc3,"class=\"header\"");
- strcpy(hbc4,"class=\"header\"");
- strcpy(hbc5,"class=\"header3\"");
- strcpy(hbc6,"class=\"header\"");
- strcpy(hbc7,"class=\"header\"");
- strcpy(hbc8,"class=\"header\"");
- strcpy(hbc9,"class=\"header\"");
+
strcpy(hbc10,"class=\"header\"");
if(strstr(TopUserFields,"NUM") == 0) {
bzero(val1, 255);
bzero(hbc1, 30);
+ } else {
+ strcpy(val1,text[100]);
+ strcpy(hbc1,"class=\"header\"");
}
if(strstr(TopUserFields,"USERID") == 0) {
bzero(val2, 255);
bzero(hbc2, 30);
+ } else {
+ strcpy(val2,text[98]);
+ strcpy(hbc2,"class=\"header\"");
}
if(strstr(TopUserFields,"CONNECT") == 0) {
bzero(val3, 255);
bzero(hbc3, 30);
+ } else {
+ strcpy(val3,text[92]);
+ strcpy(hbc3,"class=\"header\"");
}
if(strstr(TopUserFields,"BYTES") == 0) {
bzero(val4, 255);
bzero(hbc4, 30);
+ } else {
+ strcpy(val4,text[93]);
+ strcpy(hbc4,"class=\"header\"");
}
if(strstr(TopUserFields,"SETYB") == 0) {
bzero(val11, 255);
bzero(hbc9, 30);
+ } else {
+ sprintf(val11,"%%%s",text[93]);
+ strcpy(hbc9,"class=\"header\"");
}
if(strstr(TopUserFields,"IN-CACHE-OUT") == 0) {
bzero(val5, 255);
bzero(hbc5, 30);
bzero(val9, 255);
strcpy(val10,"<td></td>");
+ } else {
+ sprintf(val5,"%s-%s-%s",text[113],text[114],text[112]);
+ strcpy(hbc5,"class=\"header3\"");
+ strcpy(val9,"colspan=\"2\"");
+ bzero(val10, 255);
}
if(strstr(TopUserFields,"USED_TIME") == 0) {
bzero(val6, 255);
bzero(hbc6, 30);
+ } else {
+ strcpy(val6,text[94]);
+ strcpy(hbc6,"class=\"header\"");
}
if(strstr(TopUserFields,"MILISEC") == 0) {
bzero(val7, 255);
bzero(hbc7, 30);
+ } else {
+ strcpy(val7,text[95]);
+ strcpy(hbc7,"class=\"header\"");
}
if(strstr(TopUserFields,"%TIME") == 0) {
bzero(val8, 255);
bzero(hbc8, 30);
+ } else {
+ sprintf(val8,"%%%s",text[99]);
+ strcpy(hbc8,"class=\"header\"");
}
fprintf(fp_top3,"<tr><th %s>%s</th><th %s></th><th %s>%s</th><th %s>%s</th><th %s>%s</th><th %s>%s</th><th %s %s>%s%s</th><th %s>%s</th><th %s>%s</th><th %s>%s</th></tr>\n",hbc1,val1,hbc1,hbc2,val2,hbc3,val3,hbc4,val4,hbc9,val11,hbc5,val9,val5,val10,hbc6,val6,hbc7,val7,hbc8,val8);
fscanf(fp_top1,"%s%s%s%s%s%s",user,nbytes,nacc,elap,incac,oucac);
continue;
} else ntopuser = 1;
- if(atoi(TopUsersNum) > 0 && topcount >= atoi(TopUsersNum)) goto final;
+ if(TopUsersNum > 0 && topcount >= TopUsersNum) goto final;
strcpy(user2,user);
tnbytes=my_atoll(nbytes);
} else ouperc = 0;
if(strcmp(user,"TOTAL") != 0){
- sprintf(href1,"<a href=\"%s/",user);
+ sprintf(href1,"<a href=\"%s/%s.html\">",user,user);
strcpy(href1end,"</a>");
- sprintf(href2,"<a href=\"%s/d",user);
+ sprintf(href2,"<a href=\"%s/d%s.html\">",user,user);
strcpy(href2end,"</a>");
sprintf(href3,"<a href=\"%s/graph_day.png\">",user);
strcpy(href3end,"</a>");
- strcat(href1,user);
- strcat(href2,user);
- strcat(href1,".html\">");
- strcat(href2,".html\">");
+ posicao++;
} else {
strcpy(href1," ");
strcpy(href1end,"");
strcpy(href3end,"");
}
- posicao++;
-
tnelap=my_atoll(elap);
if(userip) {
if(UserAgentLog[0] != '\0') {
fputs("<tr><td></td></tr>\n",fp_top3);
fputs("<tr><td></td></tr>\n",fp_top3);
- fputs("<td align=\"left\" colspan=\"8\"><font size=-1><a href='useragent.html'>Useragent</a> Report</td>\n",fp_top3);
+ fputs("<td align=\"left\" colspan=\"8\"><font size=-1><a href=\"useragent.html\">Useragent</a> Report</td>\n",fp_top3);
}
fputs("</table></div>",fp_top3);