digital-divide, total avg.speed was nonsense
[svn/Prometheus-QoS/.git] / prometheus.c
index eae8afbdea7c56c28556f968b04c95a35e535be1..993b185aeda82202bc4a85313c847e8c11a677dc 100644 (file)
@@ -7,7 +7,7 @@
 /* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf  */\r
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
 \r
-/* Modified by: xChaos, 20150331\r
+/* Modified by: xChaos, 20160622\r
                  ludva, 20080415\r
  \r
    Prometheus QoS is free software; you can redistribute it and/or\r
 #include "cll1-0.6.2.h"\r
 #include "ipstruct.h"\r
 \r
-const char *version = "0.8.5-c";\r
+const char *version = "0.8.5-e";\r
 \r
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
-/* Versions: 0.8.3 is development release, 0.8.4 will be "stable"  */\r
+/* Versions: 0.8.5 is development release, 0.8.6 will be "stable"  */\r
 /* Official Trac URL: https://dev.arachne.cz/svn/prometheus        */\r
 /* Official SVN URL: https://dev.arachne.cz/repos/prometheus       */\r
 /* BTC donations account: 19rriLx8vR19wGefPaMhakqnCYNYwjLvxq       */\r
@@ -307,6 +307,7 @@ void get_config(char *config_filename)
   lloption("wan-download",line);\r
   lloption("wan-upload",up);\r
   ioption("hall-of-fame-enable",hall_of_fame);\r
+  ioption("digital-divide-weirdness-ratio",digital_divide);\r
   option("hall-of-fame-title",title);\r
   option("hall-of-fame-filename",html);\r
   option("json-filename",json_traffic);\r
@@ -1051,24 +1052,25 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
      ptr++;\r
      if_exists(ip,ips,eq(ip->addr,_))\r
      {\r
-      int unshape_this_ip = stop_shaping;\r
+      int unshape_this_ip = 0;\r
       long avg_mbps_down = ip->traffic_down * 8 / how_much_seconds; \r
       long avg_mbps_up = ip->traffic_up * 8 / how_much_seconds;\r
-      int min_mbps = ip->min>>10;\r
       int agreg = 1, print_stats = 1;\r
       \r
-      if(min_mbps < 1)\r
-      {\r
-       min_mbps = 1;\r
-      }\r
-      \r
       if(ip->keyword->download_aggregation)\r
       {\r
+       int min_mbps = (ip->min/ip->keyword->download_aggregation)>>10;\r
+       if(min_mbps < 1)\r
+       {\r
+        min_mbps = 1;\r
+       }\r
+  \r
        if(min_mbps <= avg_mbps_down)\r
        {\r
         unshape_this_ip = 0;\r
         agreg = (int)((float)(avg_mbps_down+1)/min_mbps+.5);\r
         ip->max /= agreg;\r
+        ip->pps_limit /= agreg;\r
         printf("Download aggregation 1:%d for %s (min: %lu Mbps avg: %ld Mbps)\n", agreg, ip->name, min_mbps, avg_mbps_down);\r
        }\r
        else\r
@@ -1078,6 +1080,12 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
       }\r
       else if(ip->keyword->upload_aggregation)\r
       {\r
+       int min_mbps = (ip->min/ip->keyword->upload_aggregation)>>10;\r
+       if(min_mbps < 1)\r
+       {\r
+        min_mbps = 1;\r
+       }\r
+\r
        if(min_mbps <= avg_mbps_up)\r
        {\r
         unshape_this_ip = 0;\r
@@ -1090,6 +1098,10 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
         unshape_this_ip = 1;\r
        }\r
       }\r
+      if(stop_shaping)\r
+      {\r
+       unshape_this_ip = 1;\r
+      }\r
       ip->aggregated = agreg;      \r
       ip->mark = atoi(ptr);\r
       if(ip->max < ip->desired || unshape_this_ip || reduce_ceil) /* apply or disable FUP limit immediately.... */\r
This page took 0.153101 seconds and 4 git commands to generate.