code readability
[svn/Prometheus-QoS/.git] / prometheus.c
index a3619dbea84844729b7b71daaf41b16f3906e8e6..992e6bd6396fca31f3ac9de4e953cb5f6a07f111 100644 (file)
@@ -290,7 +290,7 @@ void get_config(char *config_filename)
   option("hosts",hosts);\r
   option("downstream-interfaces-list-filename",downstreamfile);\r
   option("upstream-interfaces-list-filename",upstreamfile);\r
-  option("macros-filename",upstreamfile);\r
+  option("macros-filename",macrosfile);\r
   option("ip6-prefix",ip6prefix);\r
   option("medium",medium);\r
   ioption("hall-of-fame-enable",hall_of_fame);\r
@@ -395,6 +395,10 @@ void iptables_save_line(char *line, int ipv6)
  }\r
 }\r
 \r
+#define IPv4 FALSE\r
+#define IPv6 TRUE\r
+\r
+\r
 void run_iptables_restore(void)\r
 {\r
  char *restor;\r
@@ -404,7 +408,7 @@ void run_iptables_restore(void)
  printf("Running %s <%s ...\n", iptablesrestore, iptablesfile);\r
  /*-----------------------------------------------------------------*/\r
 \r
- iptables_save_line("COMMIT", FALSE);\r
+ iptables_save_line("COMMIT", IPv4);\r
  fclose(iptables_file);\r
  if(dry_run) \r
  {\r
@@ -423,7 +427,7 @@ void run_iptables_restore(void)
   /*-----------------------------------------------------------------*/\r
   printf("Running %s <%s ...\n", ip6tablesrestore, ip6tablesfile);\r
   /*-----------------------------------------------------------------*/\r
-  iptables_save_line("COMMIT", TRUE);\r
+  iptables_save_line("COMMIT", IPv6);\r
   fclose(ip6tables_file);\r
   if(dry_run) \r
   {\r
@@ -540,7 +544,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
  /*-----------------------------------------------------------------*/\r
  printf("Parsing downstream interfaces list %s ...\n", downstreamfile);\r
  /*-----------------------------------------------------------------*/\r
- parse(upstreamfile)\r
+ parse(downstreamfile)\r
  {\r
   ptr = parse_datafile_line(_);\r
   if(ptr)\r
@@ -558,7 +562,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
    interface->chain = "POSTROUTING";\r
    interface->idxprefix = "post";\r
    push(interface, interfaces);\r
-   printf("Upstream interface %s: medium %s capacity %ld kbps\n", interface->name, medium, interface->speed);\r
+   printf("Downstream interface %s: medium %s capacity %ld kbps\n", interface->name, medium, interface->speed);\r
   }\r
  }\r
  done; /* ugly macro end */\r
@@ -705,7 +709,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
     perror(iptablesfile);\r
     exit(-1);\r
   }\r
-  iptables_save_line(iptablespreamble, FALSE);\r
+  iptables_save_line(iptablespreamble, IPv4);\r
 \r
   if(ip6prefix)\r
   {\r
@@ -715,8 +719,8 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
      perror(ip6tablesfile);\r
      exit(-1);\r
    }\r
-   iptables_save_line(iptablespreamble, TRUE);\r
-   iptables_save_line(ip6preamble, TRUE);\r
+   iptables_save_line(iptablespreamble, IPv6);\r
+   iptables_save_line(ip6preamble, IPv6);\r
   }\r
 \r
   run_iptables_restore();\r
@@ -735,20 +739,20 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
   }\r
   \r
   iptables_file=fopen(iptablesfile,"w");\r
-  iptables_save_line(iptablespreamble, FALSE);\r
+  iptables_save_line(iptablespreamble, IPv4);\r
   if(ip6prefix)\r
   {\r
    ip6tables_file=fopen(ip6tablesfile,"w");\r
-   iptables_save_line(iptablespreamble, TRUE);\r
-   iptables_save_line(ip6preamble, TRUE);\r
+   iptables_save_line(iptablespreamble, IPv6);\r
+   iptables_save_line(ip6preamble, IPv6);\r
   }\r
 \r
   if(qos_free_zone && *qos_free_zone!='0') /* this is currently supported only for IPv4 */\r
   {\r
    for_each(interface, interfaces)\r
    {\r
-    sprintf(str,"-A %s -s %s -o %s -j ACCEPT", interface->chain, qos_free_zone, interface->name);\r
-    iptables_save_line(str, FALSE);\r
+    sprintf(str,"-A %s -%c %s -o %s -j ACCEPT", interface->chain, (interface->is_upstream?'d':'s'), qos_free_zone, interface->name);\r
+    iptables_save_line(str, IPv4);\r
    }\r
   }\r
   \r
@@ -760,12 +764,12 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
    printf("Detected %d addresses - indexing iptables rules to improve performance...\n",ip_count);\r
    /*-----------------------------------------------------------------*/\r
 \r
-   iptables_save_line(":post_common - [0:0]", FALSE);\r
-   iptables_save_line(":forw_common - [0:0]", FALSE);\r
+   iptables_save_line(":post_common - [0:0]", IPv4);\r
+   iptables_save_line(":forw_common - [0:0]", IPv4);\r
    if(ip6prefix)\r
    {\r
-    iptables_save_line(":post_common - [0:0]", TRUE);\r
-    iptables_save_line(":forw_common - [0:0]", TRUE);\r
+    iptables_save_line(":post_common - [0:0]", IPv6);\r
+    iptables_save_line(":forw_common - [0:0]", IPv6);\r
    }\r
 \r
    for_each(ip,ips) if(ip->addr && *(ip->addr) && !eq(ip->addr,"0.0.0.0/0")) \r
@@ -868,10 +872,12 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
       buf = interface->chain;\r
      }\r
 \r
-     sprintf(str,"-A %s -d %s/%d -o %s -j %s_%s", buf, subnet, idx->bitmask, interface->name, interface->idxprefix, idx->id);\r
+     sprintf(str, "-A %s -%c %s/%d -o %s -j %s_%s", \r
+                  buf, (interface->is_upstream?'s':'d'), subnet, idx->bitmask, interface->name, interface->idxprefix, idx->id);\r
      iptables_save_line(str, idx->ipv6);\r
 \r
-     sprintf(str,"-A %s -d %s/%d -o %s -j %s_common", buf, subnet, idx->bitmask, interface->name, interface->idxprefix);\r
+     sprintf(str, "-A %s -%c %s/%d -o %s -j %s_common",\r
+                  buf, (interface->is_upstream?'s':'d'), subnet, idx->bitmask, interface->name, interface->idxprefix);\r
      iptables_save_line(str, idx->ipv6);\r
     }\r
    }\r
@@ -880,11 +886,11 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
    for_each(interface, interfaces)\r
    {\r
     sprintf(str,"-A %s -o %s -j %s_common", interface->chain, interface->name, interface->idxprefix);\r
-    iptables_save_line(str, FALSE);\r
+    iptables_save_line(str, IPv4);\r
     if(ip6prefix)\r
     {\r
      sprintf(str,"-A %s -o %s -j %s_common", interface->chain, interface->name, interface->idxprefix);\r
-     iptables_save_line(str, TRUE);\r
+     iptables_save_line(str, IPv6);\r
     }\r
    }\r
   }\r
@@ -1257,24 +1263,29 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
  #endif\r
 \r
    /* ------------------------------------------------ iptables classify */\r
-   sprintf(str, "-A %s -d %s/%d -o %s -j %s%d",\r
-                chain, ip->addr, ip->mask,\r
+   sprintf(str, "-A %s -%c %s/%d -o %s -j %s%d",\r
+                chain, (interface->is_upstream?'s':'d'), ip->addr, ip->mask,\r
                 interface->name, mark_iptables, ip->mark);\r
    iptables_save_line(str, ip->v6);\r
 \r
-   sprintf(str, "-A %s -d %s/%d -o %s %s-j ACCEPT",\r
-                chain, ip->addr, ip->mask, interface->name, limit_pkts);\r
+   sprintf(str, "-A %s -%c %s/%d -o %s %s-j ACCEPT",\r
+                chain, (interface->is_upstream?'s':'d'),ip->addr, ip->mask,\r
+                interface->name, limit_pkts);\r
    iptables_save_line(str, ip->v6);\r
 \r
-   /* classify overlimit packets to separate overlimit class */\r
-   sprintf(str, "-A %s -d %s/%d -o %s -j %s%d",\r
-                chain, ip->addr, ip->mask,\r
-                interface->name, mark_iptables, OVERLIMIT_CLASS);\r
-   iptables_save_line(str, ip->v6);\r
-\r
-   sprintf(str, "-A %s -d %s/%d -o %s -j ACCEPT",\r
-                chain, ip->addr, ip->mask, interface->name);\r
-   iptables_save_line(str, ip->v6);\r
+   if(limit_pkts)\r
+   {\r
+    /* classify overlimit packets to separate overlimit class */\r
+    sprintf(str, "-A %s -%c %s/%d -o %s -j %s%d",\r
+                 chain, (interface->is_upstream?'s':'d'), ip->addr, ip->mask,\r
+                 interface->name, mark_iptables, OVERLIMIT_CLASS);\r
+    iptables_save_line(str, ip->v6);\r
+\r
+    sprintf(str, "-A %s -%c %s/%d -o %s -j ACCEPT",\r
+                 chain, (interface->is_upstream?'s':'d'), ip->addr, ip->mask,\r
+                 interface->name);\r
+    iptables_save_line(str, ip->v6);\r
+   }\r
 \r
    if(ip->min)\r
    {\r
@@ -1341,15 +1352,15 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
 \r
    sprintf(str, "-A %s -o %s -j %s%d",\r
                 chain, interface->name, mark_iptables, FREE_CLASS);\r
-   iptables_save_line(str, FALSE); /* only for IPv4 */\r
+   iptables_save_line(str, IPv4); /* only for IPv4 */\r
   }\r
 \r
   sprintf(str,"-A %s -o %s -j %s", chain, interface->name, final_chain);\r
-  iptables_save_line(str, FALSE);\r
+  iptables_save_line(str, IPv4);\r
   if(ip6prefix)\r
   {\r
    sprintf(str,"-A %s -o %s -j %s", chain, interface->name, final_chain);\r
-   iptables_save_line(str, TRUE);\r
+   iptables_save_line(str, IPv6);\r
   }\r
 \r
   if(free_min) /* allocate free bandwith if it is not zero... */ \r
@@ -1369,14 +1380,13 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
    /* tc handle 1 fw flowid */\r
    sprintf(str,"%s filter add dev %s parent 1:0 protocol ip handle %d fw flowid 1:%d", tc, interface->name, FREE_CLASS, FREE_CLASS);\r
    safe_run(str);\r
-\r
-   /*-----------------------------------------------------------------*/\r
-   puts("Generating bandwith class for overlimit packets...");\r
-   /*-----------------------------------------------------------------*/\r
-   sprintf(str, "%s class add dev %s parent 1:%d classid 1:%d htb rate %dkbit ceil %dkbit burst %dk prio %d",\r
-                tc, interface->name, parent, OVERLIMIT_CLASS, overlimit_min, overlimit_max, burst, lowest_priority);\r
-   safe_run(str);\r
   }\r
+  /*-----------------------------------------------------------------*/\r
+  puts("Generating bandwith class for overlimit packets...");\r
+  /*-----------------------------------------------------------------*/\r
+  sprintf(str, "%s class add dev %s parent 1:%d classid 1:%d htb rate %dkbit ceil %dkbit burst %dk prio %d",\r
+               tc, interface->name, parent, OVERLIMIT_CLASS, overlimit_min, overlimit_max, burst, lowest_priority);\r
+  safe_run(str);\r
  } \r
  printf("Total IP count: %d\n", i);\r
  run_iptables_restore();\r
This page took 0.203814 seconds and 4 git commands to generate.