X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/eb6906a28c887872d459890ad05cbf8e07c97b75..cda8d6eddd1a3dbe7ade6e2523daa25c3e429544:/throttlectl.c diff --git a/throttlectl.c b/throttlectl.c index cf6508e..3aeb963 100644 --- a/throttlectl.c +++ b/throttlectl.c @@ -5,7 +5,7 @@ /* throttle control */ -char const *cvs_id = "$Id: throttlectl.c,v 1.1 2004-11-17 15:08:19 bodea Exp $"; +char const *cvs_id = "$Id: throttlectl.c,v 1.6 2004-12-01 04:44:29 bodea Exp $"; int plugin_api_version = PLUGIN_API_VERSION; static struct pluginfuncs *p = 0; @@ -16,8 +16,6 @@ char *plugin_control_help[] = { 0 }; -static int iam_master = 0; - int plugin_init(struct pluginfuncs *funcs) { if (!funcs) @@ -27,12 +25,6 @@ int plugin_init(struct pluginfuncs *funcs) return 1; } -int plugin_become_master(void) -{ - iam_master = 1; - return PLUGIN_RET_OK; -} - int plugin_control(struct param_control *data) { sessionidt session; @@ -49,18 +41,14 @@ int plugin_control(struct param_control *data) && strcmp(data->argv[0], "unthrottle")) return PLUGIN_RET_OK; // not for us - flag = data->argv[0][0] != 'g'; + if (!data->iam_master) + return PLUGIN_RET_NOTMASTER; - if (!iam_master) - { - data->response = NSCTL_RES_ERR; - data->additional = "must be run on the cluster master"; - return PLUGIN_RET_STOP; - } + flag = data->argv[0][0] == 't'; if (flag) { - if (data->argc < 2 || data->argc > 4) + if (data->argc < 2 || data->argc > 6) { data->response = NSCTL_RES_ERR; data->additional = "requires username or session id and optional rate(s)"; @@ -110,11 +98,11 @@ int plugin_control(struct param_control *data) int len = strlen(data->argv[i]); if (!strncmp(data->argv[i], "in", len)) { - rate_in = atoi(argv[i+1]); + rate_in = atoi(data->argv[i+1]); } else if (!strncmp(data->argv[i], "out", len)) { - rate_out = atoi(argv[i+1]); + rate_out = atoi(data->argv[i+1]); } else { @@ -142,7 +130,7 @@ int plugin_control(struct param_control *data) } p->throttle(session, rate_in, rate_out); - p->sesssion_changed(session); + p->session_changed(session); data->response = NSCTL_RES_OK; data->additional = 0;