summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKozlov Dmitry <dima@server>2011-02-07 15:07:24 +0300
committerKozlov Dmitry <dima@server>2011-02-07 15:07:24 +0300
commita2fe6bb78b048a0214a2c3e02e26105179ec4c3a (patch)
treec59182f7b28edd9416d64f15cd0352345f876a71
parent38077f9b9d9e86f4a7d2317b3697ea4370889999 (diff)
downloadaccel-ppp-a2fe6bb78b048a0214a2c3e02e26105179ec4c3a.tar.gz
accel-ppp-a2fe6bb78b048a0214a2c3e02e26105179ec4c3a.zip
shaper: fixed rate change from cli
-rw-r--r--accel-pppd/extra/shaper_tbf.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/accel-pppd/extra/shaper_tbf.c b/accel-pppd/extra/shaper_tbf.c
index cc0ff22d..7ea48d0d 100644
--- a/accel-pppd/extra/shaper_tbf.c
+++ b/accel-pppd/extra/shaper_tbf.c
@@ -818,13 +818,18 @@ static void shaper_change_help(char * const *f, int f_cnt, void *cli)
static void shaper_change(struct shaper_pd_t *pd)
{
- if ((pd->temp_down_speed && pd->temp_up_speed) || (pd->down_speed && pd->up_speed))
+ if (pd->down_speed && pd->up_speed)
remove_shaper(pd->ppp->ifname);
- if (pd->temp_down_speed && pd->temp_up_speed)
+ if (pd->temp_down_speed && pd->temp_up_speed) {
+ pd->down_speed = pd->temp_down_speed;
+ pd->up_speed = pd->temp_up_speed;
install_shaper(pd->ppp->ifname, pd->temp_down_speed, 0, pd->temp_up_speed, 0);
- else if (pd->down_speed && pd->up_speed)
+ } else if (pd->cur_tr->down_speed && pd->cur_tr->up_speed) {
+ pd->down_speed = pd->cur_tr->down_speed;
+ pd->up_speed = pd->cur_tr->up_speed;
install_shaper(pd->ppp->ifname, pd->cur_tr->down_speed, pd->cur_tr->down_burst, pd->cur_tr->up_speed, pd->cur_tr->up_burst);
+ }
}
static int shaper_change_exec(const char *cmd, char * const *f, int f_cnt, void *cli)