X-Git-Url: https://git.harvie.cz/?p=svn%2FPrometheus-QoS%2F.git;a=blobdiff_plain;f=prometheus.c;h=c3461ca121d244fe49b63fcca0b87db66ee50ec4;hp=25a7233a71ae2d7051dc185f133bdb9639bc6afb;hb=5da4450890baa7f4837989860c672b8d20a95c63;hpb=a1d21464b252ba1931f4ef6774633a625a07454f diff --git a/prometheus.c b/prometheus.c index 25a7233..c3461ca 100644 --- a/prometheus.c +++ b/prometheus.c @@ -7,7 +7,7 @@ /* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -/* Modified by: xChaos, 20110427 +/* Modified by: xChaos, 20110428 ludva, 20080415 Prometheus QoS is free software; you can redistribute it and/or @@ -620,7 +620,7 @@ void save_line(char *line) void run_restore(void) { - char *restor, *str; + char *restor; string(restor,STRLEN); /*-----------------------------------------------------------------*/ @@ -839,25 +839,35 @@ void parse_ip_log(int argc, char **argv) f=fopen(str,"w"); if(f) { - fprintf(f,"\n ",month,year); + fprintf(f,"
%s %sData transfersMin.speed
\n ",month,year); for_each(iplog,iplogs) { if(iplog->traffic) { - fprintf(f,"\n", - i++, iplog->name, iplog->traffic, iplog->traffic>>10, iplog->guaranted); + fprintf(f,"\n", + iplog->traffic, iplog->traffic>>10, iplog->guaranted); total+=iplog->traffic>>10; iplog->i=i; iplog->l=total; } } - fprintf(f,"\n", total, line); + fprintf(f,"\n", total, line); fputs("
%s %slmsData transfersMin.speed
%d%s%ld M%ld G%ld kbps
%d%s", i++, iplog->name); + if(iplog->lmsid > 0) + { + /*base URL will be configurable soon ... */ + fprintf(f,"%04d\n", iplog->lmsid, iplog->lmsid); + } + else if(iplog->lmsid == 0) + { + fputs("-------",f); + } + fprintf(f,"%ld M%ld G%ld kbps
Total:%ld GB%Ld kbps
Total:%ld GB%Ld kbps
\n", f); if(i>10) { - fputs("

\n",f); + fputs("

Enterprise Research and Planning (ERP)
\n",f); fputs("\n",f); fputs("\n",f); @@ -1123,6 +1133,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); sharedip->traffic+=ip->traffic; ip->traffic=0; ip->mark=sharedip->mark; + ip->lmsid=sharedip->lmsid; break; } if(!sharedip) @@ -1605,7 +1616,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); } else if(ip->lmsid == 0) { - fputs("----",f); + fputs("-------",f); } fputs("\n",f); } @@ -1647,7 +1658,6 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); fclose(iplog); } } - } fprintf(f,"\ @@ -1661,7 +1671,11 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); if(active_classes>10) { - fputs("

Enterprise Resource Planning (ERP)
Analytic categoryActive ClassesData transfers
SUMMARY:",colspan-7); fprintf(f,"%Lu M
\n",f); + int top20_count=0,top20_perc1=0; + long long top20_perc2=0; + unsigned long long top20_sum=0l; + + fputs("

Enterprise Research and Planning (ERP)
\n",f); fputs("\n",f); fputs("\n",f); @@ -1689,10 +1703,14 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); } - if_exists (sum,sums,sum->i>=(active_classes+1)/5) + if_exists(sum,sums,sum->i>=(active_classes+1)/5) { fprintf(f,"\n"); - fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); + top20_count=sum->i; + top20_perc1=(100*sum->i+50)/active_classes; + top20_sum=sum->l; + top20_perc2=(100*sum->l+50)/total; + fprintf(f,"\n",top20_count,top20_perc1,top20_sum,top20_perc2); } if_exists(sum,sums,sum->i>=(active_classes+1)/4) @@ -1713,10 +1731,24 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); fprintf(f,"\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total); } - fprintf(f,"\n"); + fprintf(f,"\n", log_url); fprintf(f,"\n",active_classes,total); fputs("
Enterprise Resource Planning (ERP)
Analytic categoryActive ClassesData transfers
%d%d %%%Lu M%Ld %%
Top 20%% downloaders%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
%d%d %%%Lu M%Ld %%
All users, all traffic
All users, all traffic%d100 %%%Lu M100 %%
\n", f); + + /* write basic ERP data to log directory */ + if(!just_preview) + { + sprintf(str,"%s/ERP.log",log_dir); + iplog=fopen(str,"a"); + if(iplog) + { + fprintf(iplog,"%ld\t%d\t%d %%\t%Lu M\t%Ld %%\t%d\t%Lu M\t%s", + time(NULL), top20_count, top20_perc1, top20_sum, top20_perc2, active_classes, total, d); /* d = date*/ + fclose(iplog); + } + } } + fprintf(f, stats_html_signature, version); fclose(f); }