* Update cli callbacks to work with libcli 1.6.
This supports privileged and unprivileged commands, as well as a configuration mode * Add help for all cli commands * Add "show version" command * Fix uptime counter display * Fix nasty bug where cluster basetime can be set to 0 when sending initial heartbeat * Don't rmmod ip_conntrack, as this can take a lot of time * Re-order logging in routeset such that the action is given before any error * Use the correct gateway address when deleting routes * Remove any routes when address changes * Require authentication if telnet from remote ip * Require enable password always * Return error if show pool done on slave * We MUST immediately exit if we're the wrong master!
This commit is contained in:
parent
df561af44e
commit
7aa420ce9f
18 changed files with 765 additions and 332 deletions
17
tbf.c
17
tbf.c
|
|
@ -1,9 +1,14 @@
|
|||
// L2TPNS: token bucket filters
|
||||
|
||||
char const *cvs_id_tbf = "$Id: tbf.c,v 1.2 2004-06-28 02:43:13 fred_nerk Exp $";
|
||||
|
||||
#include <malloc.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
#include <sys/mman.h>
|
||||
|
||||
#include "l2tpns.h"
|
||||
#include "util.h"
|
||||
#include "tbf.h"
|
||||
|
||||
// Need a time interval.
|
||||
|
|
@ -289,10 +294,10 @@ static void tbf_run_queue(int tbf_id)
|
|||
f = &filter_list[tbf_id];
|
||||
|
||||
// Calculate available credit...
|
||||
f->credit += (config->current_time - f->lasttime) * f->rate / 10; // current time is 1/10th of a second.
|
||||
f->credit += (TIME - f->lasttime) * f->rate / 10; // current time is 1/10th of a second.
|
||||
if (f->credit > f->max_credit)
|
||||
f->credit = f->max_credit;
|
||||
f->lasttime = config->current_time;
|
||||
f->lasttime = TIME;
|
||||
|
||||
while (f->queued > 0 && f->credit >= f->sizes[f->oldest]) { // While we have enough credit..
|
||||
|
||||
|
|
@ -348,7 +353,7 @@ int tbf_run_timer(void)
|
|||
for (i = 0; i < filter_list_size; ++i) {
|
||||
if (!filter_list[i].next)
|
||||
continue;
|
||||
if (filter_list[i].lasttime == config->current_time) // Did we just run it?
|
||||
if (filter_list[i].lasttime == TIME) // Did we just run it?
|
||||
continue;
|
||||
|
||||
log(1,0,0,0, "Missed tbf %d! Not on the timer chain?(n %d, p %d, tc %d)\n", i,
|
||||
|
|
@ -365,10 +370,14 @@ int cmd_show_tbf(struct cli_def *cli, char *command, char **argv, int argc)
|
|||
int i;
|
||||
int count = 0;
|
||||
|
||||
if (CLI_HELP_REQUESTED)
|
||||
return CLI_HELP_NO_ARGS;
|
||||
|
||||
if (!config->cluster_iam_master) {
|
||||
cli_print(cli, "Command can't be run on a slave.");
|
||||
cli_print(cli, "Can't do this on a slave. Do it on %s", inet_toa(config->cluster_master_address));
|
||||
return CLI_OK;
|
||||
}
|
||||
|
||||
if (!filter_list)
|
||||
return CLI_OK;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue