X-Git-Url: https://git.harvie.cz/?a=blobdiff_plain;f=prometheus.c;h=6aaa3c78869793a9c3042eb18a6e5bc0e5fb8235;hb=a7e55d860299849e031ce7997aca053223160bb3;hp=f12de1530e477e15cf1fbf45689f2f31aa56f352;hpb=4f4d182088d6b40224a5475f284a9c756ae604a1;p=svn%2FPrometheus-QoS%2F.git diff --git a/prometheus.c b/prometheus.c index f12de15..6aaa3c7 100644 --- a/prometheus.c +++ b/prometheus.c @@ -7,7 +7,7 @@ /* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -/* Modified by: xChaos, 20120516 +/* Modified by: xChaos, 20120610 ludva, 20080415 Prometheus QoS is free software; you can redistribute it and/or @@ -33,7 +33,7 @@ #include "cll1-0.6.2.h" -const char *version = "0.8.3-d"; +const char *version = "0.8.3-e"; /* Version numbers: 0.8.3 is development releases ("beta"), 0.8.4 will be "stable" */ /* Debian(RPM) package versions/patchlevels: 0.7.9-2, 0.8.0-1, 0.8.0-2, etc. */ @@ -58,7 +58,7 @@ char *credit = "/var/lib/misc/prometheus.credit"; /* credit log file */ char *classmap = "/var/lib/misc/prometheus.classes"; /* credit log file */ char *html = "/var/www/traffic.html"; /* hall of fame - html version */ char *preview = "/var/www/preview.html"; /* hall of fame preview */ -char *json = "/var/www/traffic.json"; /* hall of fame - json version */ +char *json = "/var/www/logs/traffic.json"; /* hall of fame - json version */ char *cmdlog = "/var/log/prometheuslog"; /* command log filename */ char *log_dir = "/var/www/logs/"; /* log directory pathname, ended with slash */ char *log_url = "/logs/"; /* log directory relative URI prefix (partial URL) */ @@ -610,7 +610,7 @@ void get_traffic_statistics(void) { printf("(upload) "); } - printf("IP %s: %Lu M (%ld pkts)\n", ipaddr, traffic, pkts); + printf("IP %s: %Lu MB (%ld pkts)\n", ipaddr, traffic, pkts); if_exists(ip,ips,eq(ip->addr,ipaddr)); else @@ -958,7 +958,11 @@ void parse_ip_log(int argc, char **argv) if_exists(iplog,iplogs,iplog->l>=total/4) { fprintf(f,"%sTop 25%% of traffic\n", tr_odd_even()); - fprintf(f,"%d%d %%%ld G%d %%\n",iplog->i,(100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); + fprintf(f,"%d\n\ +%d %%\n\ +%ld GB\n\ +%d %%\n", + iplog->i, (100*iplog->i+50)/i, iplog->l, (int)((100*iplog->l+50)/total)); } if_exists(iplog,iplogs,iplog->i==10) @@ -966,9 +970,9 @@ void parse_ip_log(int argc, char **argv) fprintf(f,"%sTop 10 downloaders\n", tr_odd_even()); fprintf(f,"10\n\ %d %%\n\ -%ld G\n\ +%ld GB\n\ %d %%\n", - (100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); + (100*iplog->i+50)/i, iplog->l, (int)((100*iplog->l+50)/total)); } if_exists(iplog,iplogs,iplog->l>=total/2) @@ -976,7 +980,7 @@ void parse_ip_log(int argc, char **argv) fprintf(f,"%sTop 50%% of traffic\n", tr_odd_even()); fprintf(f,"%d\n\ %d %%\n\ -%ld G\n\ +%ld GB\n\ %d %%\n", iplog->i,(100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); } @@ -986,9 +990,9 @@ void parse_ip_log(int argc, char **argv) fprintf(f,"%sTop 80%% of traffic\n",tr_odd_even()); fprintf(f,"%d\n\ %d %%\n\ -%ld G\n\ +%ld GB\n\ %d %%\n", - iplog->i,(100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); + iplog->i, (100*iplog->i+50)/i, iplog->l, (int)((100*iplog->l+50)/total)); } if_exists (iplog,iplogs,iplog->i>=i/5) @@ -996,15 +1000,19 @@ void parse_ip_log(int argc, char **argv) fprintf(f,"%sTop 20%% downloaders\n",tr_odd_even()); fprintf(f,"%d\n\ %d %%\n\ -%ld G\n\ +%ld GB\n\ %d %%\n", - iplog->i,(100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); + iplog->i, (100*iplog->i+50)/i, iplog->l, (int)((100*iplog->l+50)/total)); } if_exists(iplog,iplogs,iplog->i>=i/4) { fprintf(f,"%sTop 25%% downloaders\n", tr_odd_even()); - fprintf(f,"%d%d %%%ld G%d %%\n",iplog->i,(100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); + fprintf(f,"%d\n\ +%d %%\n\ +%ld GB\n\ +%d %%\n", + iplog->i, (100*iplog->i+50)/i, iplog->l, (int)((100*iplog->l+50)/total)); } if_exists(iplog,iplogs,iplog->i>=i/2) @@ -1012,19 +1020,25 @@ void parse_ip_log(int argc, char **argv) fprintf(f,"%sTop 50%% downloaders\n",tr_odd_even()); fprintf(f,"%d\n\ %d %%\n\ -%ld G%d %%\n",iplog->i,(100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); +%ld GB\n\ +%d %%\n", + iplog->i, (100*iplog->i+50)/i, iplog->l, (int)((100*iplog->l+50)/total)); } if_exists(iplog,iplogs,iplog->i>=4*i/5) { fprintf(f,"%sTop 80%% downloaders\n",tr_odd_even()); - fprintf(f,"%d%d %%%ld G%d %%\n",iplog->i,(100*iplog->i+50)/i,iplog->l,(int)((100*iplog->l+50)/total)); + fprintf(f,"%d\n\ +%d %%\n\ +%ld GB\n\ +%d %%\n", + iplog->i, (100*iplog->i+50)/i, iplog->l, (int)((100*iplog->l+50)/total)); } fprintf(f,"All users, all traffic\n", log_url); fprintf(f,"%d\n\ 100 %%\n\ -%ld G\n\ +%ld GB\n\ 100 %%\n",i-1,total); fputs("\n", f); } @@ -1635,16 +1649,17 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); fprintf(f, "{\n"); for_each(ip, ips) { - if(jsoncount) + if( ip->lmsid > 0 + && (ip->traffic || ip->direct || ip->proxy || ip->upload)) { - fprintf(f, ",\n"); - } - if(ip->traffic || ip->direct || ip->proxy || ip->upload) - { - fprintf(f, " %d:{ \"ip\":\"%s\", \"total\":%Lu, \"down\":%Lu, \"proxy\":%Lu, \"up\":%Lu }", - ip->lmsid, ip->addr, ip->traffic, ip->direct, ip->proxy, ip->upload); + if(jsoncount) + { + fprintf(f, ",\n"); + } + fprintf(f, " \"%s\":{ \"lms\": %d, \"ip\":\"%s\", \"total\":%Lu, \"down\":%Lu, \"proxy\":%Lu, \"up\":%Lu }", + ip->name, ip->lmsid, ip->addr, ip->traffic, ip->direct, ip->proxy, ip->upload); + jsoncount++; } - jsoncount++; } fprintf(f, "}\n"); fclose(f); @@ -1924,7 +1939,11 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); if_exists(sum,sums,sum->l>=total_traffic/4) { fprintf(f,"%sTop 25%% of traffic\n", tr_odd_even()); - fprintf(f,"%d%d %%%Lu M%Ld %%\n",sum->i,(100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); + fprintf(f,"%d\n\ +%d %%\n\ +%Lu MB\n\ +%Ld %%\n", + sum->i, (100*sum->i+50)/active_classes, sum->l, (100*sum->l+50)/total_traffic); } if_exists(sum,sums,sum->i==10) @@ -1934,7 +1953,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); %d %%\n\ %Lu MB\n\ %Ld %%\n", - (100*sum->i+50)/active_classes,sum->l,(100*sum->l+50)/total_traffic); + (100*sum->i+50)/active_classes, sum->l, (100*sum->l+50)/total_traffic); } if_exists(sum,sums,sum->l>=total_traffic/2) @@ -2004,7 +2023,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); fprintf(f,"All users, all traffic\n", log_url); fprintf(f,"%d\n\ 100 %%\n\ -%Lu M\n\ +%Lu MB\n\ 100 %%\n",active_classes,total_traffic); fputs("\n", f); @@ -2165,7 +2184,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); if(f) { - fprintf(f, "%s %d", ip->addr, ip->mark); + fprintf(f, "%s %d\n", ip->addr, ip->mark); } } else