versioning
[svn/Prometheus-QoS/.git] / prometheus.c
index e091d6e095df8ada02c802803c5d84cdf1a67a2d..49fa5e2396153c7aa73f6def8b201caff95a005a 100644 (file)
@@ -2,12 +2,12 @@
 /* Prometheus QoS - you can "steal fire" from your ISP         */\r
 /* "fair-per-IP" quality of service (QoS) utility              */\r
 /* requires Linux 2.4.x or 2.6.x with HTB support              */\r
-/* Copyright(C) 2005-2013 Michael Polak, Arachne Aerospace     */\r
+/* Copyright(C) 2005-2014 Michael Polak, Arachne Aerospace     */\r
 /* iptables-restore support Copyright(C) 2007-2008 ludva       */\r
 /* Credit: CZFree.Net,Martin Devera,Netdave,Aquarius,Gandalf  */\r
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
 \r
-/* Modified by: xChaos, 20131126\r
+/* Modified by: xChaos, 20140812\r
                  ludva, 20080415\r
  \r
    Prometheus QoS is free software; you can redistribute it and/or\r
@@ -29,7 +29,7 @@
 #include "cll1-0.6.2.h"\r
 #include "ipstruct.h"\r
 \r
-const char *version = "0.8.5-a";\r
+const char *version = "0.8.5-b";\r
 \r
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
 /* Versions: 0.8.3 is development release, 0.8.4 will be "stable"  */\r
@@ -40,7 +40,7 @@ const char *version = "0.8.5-a";
 /* Warning: unofficial Github mirror is not supported by author!  */\r
 /* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */\r
 \r
-const char *stats_html_signature = "<span class=\"small\">Statistics generated by Prometheus QoS version %s<br />GPL+Copyright(C)2005-2013 Michael Polak, <a target=\"_blank\" href=\"http://www.arachne.cz/\">Arachne Labs</a></span>\n";\r
+const char *stats_html_signature = "<span class=\"small\">Statistics generated by Prometheus QoS version %s<br />GPL+Copyright(C)2005-2014 Michael Polak, <a target=\"_blank\" href=\"http://www.arachne.cz/\">Arachne Labs</a></span>\n";\r
 \r
 #define STRLEN 512\r
 #undef DEBUG\r
@@ -112,7 +112,7 @@ int      overlimit_min = 256; /* minimum guaranted bandwidth for all undefined h
 int      overlimit_max = 512; /* maximum allowed bandwidth for all undefined hosts */\r
 int     qos_free_delay = 0; /* seconds to sleep before applying new QoS rules */\r
 int     digital_divide = 2; /* controls digital divide weirdness ratio, 1...3 */ \r
-int        max_nesting = 3; /* maximum nesting of HTB clases, built-in maximum seems to be 4 */\r
+int        max_nesting = 5; /* /include/uapi/linux/pkt_sched.h: #define TC_HTB_MAXDEPTH 8 [... - 3 parent classes] */\r
 int            htb_r2q = 256; /* should work for leaf values 512 kbps to 8 Mbps */\r
 int              burst = 8; /* HTB burst (in kbits) */\r
 int         burst_main = 64;\r
@@ -125,7 +125,7 @@ FILE         *log_file = NULL;
 char              *kwd = "via-prometheus"; /* /etc/hosts comment, eg. #qos-64-128 */\r
 \r
 const int highest_priority   = 0; /* highest HTB priority (HTB built-in value is 0) */\r
-const int lowest_priority    = 7; /* lowest HTB priority (HTB built-in value is 7) */\r
+const int lowest_priority    = 7; /* lowest HTB priority /include/uapi/linux/pkt_sched.h: #define TC_HTB_NUMPRIO 8 */\r
 const int idxtable_treshold1 = 24;      /* this is no longer configurable */\r
 const int idxtable_treshold2 = 12;      /* this is no longer configurable */\r
 const int idxtable_bitmask1  = 3;        /* this is no longer configurable */\r
@@ -581,6 +581,23 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
  string(str, STRLEN); \r
  string(limit_pkts, STRLEN);\r
 \r
+ /*-----------------------------------------------------------------*/\r
+ printf("Parsing macro definition file %s ...\n", macrosfile);\r
+ /*-----------------------------------------------------------------*/\r
+ parse(macrosfile)\r
+ {\r
+  ptr = parse_datafile_line(_);\r
+  if(ptr)\r
+  {\r
+   create(macro, Macro);\r
+   macro->rewrite_from = _;\r
+   macro->rewrite_to = ptr;\r
+   push(macro, macros);\r
+   printf("%s -> %s\n", macro->rewrite_from, macro->rewrite_to);\r
+  }\r
+ }\r
+ done; /* ugly macro end */\r
+\r
  /*-----------------------------------------------------------------*/\r
  printf("Parsing class defintion file %s ...\n", hosts);\r
  /*-----------------------------------------------------------------*/\r
@@ -631,25 +648,6 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
   done; /* ugly macro end */\r
  }\r
 \r
- if(enable_credit && just_flush<9)\r
- {\r
-  /*-----------------------------------------------------------------*/\r
-  printf("Parsing macro definition file %s ...\n", macrosfile);\r
-  /*-----------------------------------------------------------------*/\r
-  parse(macrosfile)\r
-  {\r
-   ptr = parse_datafile_line(_);\r
-   if(ptr)\r
-   {\r
-    create(macro, Macro);\r
-    macro->rewrite_from = _;\r
-    macro->rewrite_to = ptr;\r
-    push(macro, macros);\r
-    printf("%s -> %s\n", macro->rewrite_from, macro->rewrite_to);\r
-   }\r
-  }\r
-  done; /* ugly macro end */\r
- }\r
 \r
  if(!just_preview)\r
  {\r
@@ -1001,8 +999,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
      {\r
       if(    ip->keyword->data_prio \r
           && !ip->fixedprio \r
-          && (   ip->traffic>ip->credit\r
-               + (ip->min*ip->keyword->data_prio+(ip->keyword->fixed_prio<<20))) )\r
+          && (   ip->traffic >   ip->credit + (ip->min*ip->keyword->data_prio+(ip->keyword->fixed_prio<<20))) )\r
       {\r
        ip->prio=priority_sequence--;\r
        if(ip->prio<highest_priority+1)\r
This page took 0.121881 seconds and 4 git commands to generate.