/* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf */\r
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
\r
-/* Modified by: xChaos, 20130124\r
+/* Modified by: xChaos, 20131029\r
ludva, 20080415\r
\r
Prometheus QoS is free software; you can redistribute it and/or\r
const int idxtable_bitmask1 = 3; /* this is no longer configurable */\r
const int idxtable_bitmask2 = 3; /* this is no longer configurable */\r
\r
-struct IP *ips = NULL, *ip, *sharedip;\r
+struct IP *ips = NULL, *networks = NULL, *ip, *sharedip;\r
struct Group *groups = NULL, *group;\r
struct Keyword *keyword, *defaultkeyword=NULL, *keywords=NULL;\r
\r
void write_htmlandlogs(char *html, char *d, int total, int just_preview);\r
/* implemented in htmlandlogs.c */\r
\r
+void analyse_topology(char *traceroute);\r
+/* implemented in networks.c */\r
+\r
+\r
const char *tr_odd_even(void)\r
{\r
row_odd_even = 1 - row_odd_even;\r
/* leaf discipline for keywords */\r
for_each(keyword,keywords)\r
{\r
- if(!strcmpi(keyword->leaf_discipline, ""))\r
- {\r
- keyword->leaf_discipline = qos_leaf;\r
- }\r
+ if(!strcmpi(keyword->leaf_discipline, ""))\r
+ {\r
+ keyword->leaf_discipline = qos_leaf;\r
+ }\r
}\r
\r
if(strcmpi(cnf, "mark"))\r
char *substring;\r
\r
int parent = 1;\r
+ int just_networks = FALSE; \r
int just_flush = FALSE; /* deactivates all previous actions */\r
int nodelay = FALSE;\r
int just_preview = FALSE; /* preview - generate just stats */\r
argument("-s") { run=TRUE; just_preview=TRUE; start_shaping=TRUE; }\r
argument("-r") { run=TRUE; }\r
argument("-n") { run=TRUE; nodelay=TRUE; }\r
+ argument("-a") { run=TRUE; just_networks=TRUE; }\r
argument("-l") { just_logs=TRUE; }\r
argument("-m") { just_logs=TRUE; }\r
argument("-y") { just_logs=TRUE; }\r
\r
if(althosts)\r
{\r
- hosts=althosts;\r
+ hosts = althosts;\r
}\r
\r
if(just_flush<9)\r
}\r
\r
/*-----------------------------------------------------------------*/\r
- printf("Parsing class defintion file %s ...\n", hosts);\r
+ /* cll1.h - let's allocate brand new character buffer... */\r
/*-----------------------------------------------------------------*/\r
- parse_hosts(hosts);\r
+ string(str,STRLEN); \r
\r
/*-----------------------------------------------------------------*/\r
- /* cll1.h - let's allocate brand new character buffer... */\r
+ printf("Parsing class defintion file %s ...\n", hosts);\r
/*-----------------------------------------------------------------*/\r
- string(str,STRLEN); \r
+ parse_hosts(hosts);\r
+ if(just_networks)\r
+ {\r
+ analyse_topology("/usr/sbin/traceroute -n -m 10 -w 2 %s.%d");\r
+ exit(-1); \r
+ }\r
\r
/*-----------------------------------------------------------------*/\r
puts("Resolving shared connections ...");\r
/*-----------------------------------------------------------------*/\r
- for_each(ip,ips) if(ip->sharing)\r
+ for_each(ip, ips) if(ip->sharing)\r
{\r
- for_each(sharedip,ips) if(eq(sharedip->name, ip->sharing))\r
+ for_each(sharedip, ips) if(eq(sharedip->name, ip->sharing))\r
{\r
sharedip->traffic += ip->traffic;\r
ip->traffic = 0;\r