prometheus -q (quit shaping - ignore FUP)
authorxchaos <xchaos@251d49ef-1d17-4917-a970-b30cf55b089b>
Thu, 24 Jan 2013 19:18:52 +0000 (19:18 +0000)
committerxchaos <xchaos@251d49ef-1d17-4917-a970-b30cf55b089b>
Thu, 24 Jan 2013 19:18:52 +0000 (19:18 +0000)
git-svn-id: https://dev.arachne.cz/repos/prometheus/trunk@220 251d49ef-1d17-4917-a970-b30cf55b089b

help.c
prometheus.c

diff --git a/help.c b/help.c
index 023673a..d4c7fb8 100644 (file)
--- a/help.c
+++ b/help.c
@@ -11,7 +11,8 @@ void help(void)
 -d   Dry run (preview tc and iptables commands on stdout)\n\
 -r   Run (reset all statistics and start shaping - daily usage)\n\
 -p   just generate Preview of data transfer statistics and exit (after -r)\n\
--s   start Shaping FUP limits (keeps data transfer stat like -p) (after -r)\n\
+-s   Start shaping FUP limits (keeps data transfer stat like -p) (after -r)\n\
+-q   Quit shaping FUP limits (keeps data transfer stat like -p) (after -r)\n\
 -n   run Now (like -r delay - overrides qos-free-delay keyword, after boot)\n\
 -f   just Flush iptables and tc classes and exit (stop shaping, no QiS)\n\
 -9   emergency iptables flush (like -f, but dumps data transfer statistics)\n\
index 503bbac..70b0953 100644 (file)
@@ -472,6 +472,7 @@ program
  int nodelay       = FALSE;\r
  int just_preview  = FALSE;       /* preview - generate just stats */\r
  int start_shaping = FALSE;       /* apply FUP - requires classmap file */\r
+ int stop_shaping  = FALSE;       /* apply FUP - requires classmap file */\r
  int just_logs     = FALSE;       /* just parse logs */\r
  int run           = FALSE;\r
  int total         = 0;\r
@@ -494,6 +495,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
   argument("-f") { run=TRUE; just_flush=TRUE; }\r
   argument("-9") { run=TRUE; just_flush=9; }\r
   argument("-p") { run=TRUE; just_preview=TRUE; }\r
+  argument("-q") { run=TRUE; just_preview=TRUE; stop_shaping=TRUE; }\r
   argument("-s") { run=TRUE; just_preview=TRUE; start_shaping=TRUE; }\r
   argument("-r") { run=TRUE; }\r
   argument("-n") { run=TRUE; nodelay=TRUE; }\r
@@ -977,7 +979,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
 \r
  if(just_preview)\r
  {\r
-  if(start_shaping)\r
+  if(start_shaping || stop_shaping)\r
   {\r
    printf("Reading %s and applying Fair Use Policy rules ... \n", classmap);\r
    parse(classmap)\r
@@ -990,9 +992,17 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
      if_exists(ip,ips,eq(ip->addr,_))\r
      {\r
       ip->mark=atoi(ptr);\r
-      if(ip->max < ip->desired) /* apply FUP limit immediately.... */\r
+      if(ip->max < ip->desired || stop_shaping) /* apply or disable FUP limit immediately.... */\r
       {\r
-       printf("Applying limit for %-22s %-16s %04d ", ip->name, ip->addr, ip->mark);       \r
+       if(stop_shaping)\r
+       {\r
+        ip->max = ip->desired;\r
+        printf("Removing limit for %-22s %-16s %04d ", ip->name, ip->addr, ip->mark);               \r
+       }\r
+       else\r
+       {\r
+        printf("Applying limit for %-22s %-16s %04d ", ip->name, ip->addr, ip->mark);       \r
+       }\r
        printf("(down: %dk-%dk ", ip->min, ip->max); \r
        sprintf(str, "%s class change dev %s parent 1:%d classid 1:%d htb rate %dkbit ceil %dkbit burst %dk prio %d", \r
                     tc, lan, ip->group, ip->mark,ip->min,ip->max, burst, ip->prio);\r
@@ -1013,6 +1023,7 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
     perror(classmap);\r
     puts("Warning - classmap file not fund, just generating preview ...");\r
     start_shaping=FALSE;\r
+    stop_shaping=FALSE;\r
    }\r
    done; /* ugly macro end */\r
   }\r
@@ -1040,6 +1051,11 @@ Credit: CZFree.Net, Martin Devera, Netdave, Aquarius, Gandalf\n\n",version);
   {\r
    swchar='s';\r
   }\r
+  else if(stop_shaping)\r
+  {\r
+   swchar='q';\r
+  }\r
+\r
   printf("Statistics preview generated (-%c switch) - now exiting ...\n", swchar);\r
   exit(0);\r
  }  \r
This page took 0.129849 seconds and 4 git commands to generate.