From: xchaos Date: Thu, 11 Oct 2012 21:15:03 +0000 (+0000) Subject: some more cleanup X-Git-Url: https://git.harvie.cz/?p=svn%2FPrometheus-QoS%2F.git;a=commitdiff_plain;h=b6fb849acbdcca50df04223a6f31336cc101de2e some more cleanup git-svn-id: https://dev.arachne.cz/repos/prometheus/trunk@199 251d49ef-1d17-4917-a970-b30cf55b089b --- diff --git a/prometheus.c b/prometheus.c index 7179714..40b8865 100644 --- a/prometheus.c +++ b/prometheus.c @@ -7,7 +7,7 @@ /* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf */ /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */ -/* Modified by: xChaos, 20121007 +/* Modified by: xChaos, 20121011 ludva, 20080415 Prometheus QoS is free software; you can redistribute it and/or @@ -41,6 +41,29 @@ const char *version = "0.8.3-g"; const char *stats_html_signature = "Statistics generated by Prometheus QoS version %s
GPL+Copyright(C)2005-2012 Michael Polak, Arachne Labs
\n"; +/* ======= Help screen is hopefuly self-documenting part of code :-) ======= */ + +void help(void) +{ + puts("Command line switches:\n\ +\n\ +-d Dry run (preview tc and iptables commands on stdout)\n\ +-r Run (reset all statistics and start shaping - daily usage)\n\ +-p just generate Preview of data transfer statistics and exit (after -r)\n\ +-s start Shaping FUP limits (keeps data transfer stat like -p) (after -r)\n\ +-n run Now (like -r delay - overrides qos-free-delay keyword, after boot)\n\ +-f just Flush iptables and tc classes and exit (stop shaping, no QiS)\n\ +-9 emergency iptables flush (like -f, but dumps data transfer statistics)\n\ +\n\ +-c filename force alternative /etc/prometheus/prometheus.conf filename\n\ +-h filename force alternative /etc/hosts filename (overrides hosts keyword)\n\ +-l Mmm YYYY generate HTML summary of Logged traffic (Mmm=Jan-Dec) (and exit)\n\ +-m generate HTML summary of traffic for yesterday's Month (and exit)\n\ +-y generate HTML summary of traffic for yesterday's Year (and exit)\n\ +-? --help show this help scree (and exit)\n\ +-v --version show Version number of this utility (and exit)\n"); +} + /* ======= All path names are defined here (for RPM patch) ======= */ const char *tc = "/sbin/tc"; /* requires tc with HTB support */ @@ -68,50 +91,7 @@ char *jquery_url = "http://code.jquery.com/jquery-latest.js"; char *lms_url = "/lms/?m=customerinfo&id="; int use_jquery_popups = 1; int row_odd_even = 0; /* */ - - -void parse_ip_log(int argc, char **argv); -/* implementid in parselog.c */ - -void parse_hosts(char *hosts); -/* implementid in parsehosts.c */ - -const char *tr_odd_even(void) -{ - row_odd_even = 1 - row_odd_even; - if(row_odd_even) - { - return "\n"; - } - else - { - return "\n"; - } -} - -/* ======= Help screen is hopefuly self-documenting part of code :-) ======= */ - -void help(void) -{ - puts("Command line switches:\n\ -\n\ --d Dry run (preview tc and iptables commands on stdout)\n\ --r Run (reset all statistics and start shaping - daily usage)\n\ --p just generate Preview of data transfer statistics and exit (after -r)\n\ --s start Shaping FUP limits (keeps data transfer stat like -p) (after -r)\n\ --n run Now (like -r delay - overrides qos-free-delay keyword, after boot)\n\ --f just Flush iptables and tc classes and exit (stop shaping, no QiS)\n\ --9 emergency iptables flush (like -f, but dumps data transfer statistics)\n\ -\n\ --c filename force alternative /etc/prometheus/prometheus.conf filename\n\ --h filename force alternative /etc/hosts filename (overrides hosts keyword)\n\ --l Mmm YYYY generate HTML summary of Logged traffic (Mmm=Jan-Dec) (and exit)\n\ --m generate HTML summary of traffic for yesterday's Month (and exit)\n\ --y generate HTML summary of traffic for yesterday's Year (and exit)\n\ --? --help show this help scree (and exit)\n\ --v --version show Version number of this utility (and exit)\n"); -} - + /* === Configuraration file values defaults - stored in global variables ==== */ int filter_type = 1; /*1 mark, 2 classify*/ @@ -168,6 +148,25 @@ struct IP *ips = NULL, *ip, *sharedip; struct Group *groups = NULL, *group; struct Keyword *keyword, *defaultkeyword=NULL, *keywords=NULL; +void parse_ip_log(int argc, char **argv); +/* implementid in parselog.c */ + +void parse_hosts(char *hosts); +/* implementid in parsehosts.c */ + +const char *tr_odd_even(void) +{ + row_odd_even = 1 - row_odd_even; + if(row_odd_even) + { + return "\n"; + } + else + { + return "\n"; + } +} + /* ==== This is C<<1 stuff - learn C<<1 first! https://dev.arachne.cz/svn/cll1h ==== */ struct Index @@ -181,13 +180,12 @@ struct Index } *idxs=NULL, *idx, *metaindex; - void TheIP(void); /* function implemented in parsehosts.c */ /* ====== iptables indexes are used to reduce complexity to log8(N) ===== */ -char *very_ugly_ipv4_code(char *inip,int bitmask,int format_as_chainname) +char *very_ugly_ipv4_code(char *inip, int bitmask, int format_as_chainname) { /* warning: this function was debugged only for bitmask values 20,24,28 !!!*/ int dot=0, n; @@ -275,7 +273,7 @@ char *very_ugly_ipv4_code(char *inip,int bitmask,int format_as_chainname) return outip; } -char *hash_id(char *ip,int bitmask) +char *index_id(char *ip,int bitmask) { return very_ugly_ipv4_code(ip,bitmask,1); } @@ -890,7 +888,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); for_each(ip,ips) if(ip->addr && *(ip->addr) && !eq(ip->addr,"0.0.0.0/0")) { - buf=hash_id(ip->addr,bitmask); + buf=index_id(ip->addr,bitmask); if_exists(idx,idxs,eq(idx->id,buf)) { idx->children++; @@ -916,7 +914,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); for_each(idx,idxs) if(idx->parent == NULL) { - buf=hash_id(idx->addr,bitmask); + buf=index_id(idx->addr,bitmask); if_exists(metaindex,idxs,eq(metaindex->id,buf)) { metaindex->children++; @@ -1630,7 +1628,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version); { char *buf; duplicate(ip->addr,buf); - buf=hash_id(ip->addr,32-idxtable_bitmask1); + buf=index_id(ip->addr,32-idxtable_bitmask1); string(chain_forward,6+strlen(buf)); strcpy(chain_forward,"forw_");