network analyzer - first attempt
[svn/Prometheus-QoS/.git] / prometheus.c
index b7b3a04..045c182 100644 (file)
@@ -132,7 +132,7 @@ const int idxtable_treshold2 = 12;      /* this is no longer configurable */
 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
@@ -154,6 +154,10 @@ void write_json_traffic(char *json);
 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
@@ -337,10 +341,10 @@ void get_config(char *config_filename)
  /* 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
@@ -468,6 +472,7 @@ program
  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
@@ -502,6 +507,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
   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
@@ -536,7 +542,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
 \r
  if(althosts)\r
  {\r
-  hosts=althosts;\r
+  hosts = althosts;\r
  }\r
 \r
  if(just_flush<9)\r
@@ -555,21 +561,26 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
  }\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
This page took 0.133604 seconds and 4 git commands to generate.