X-Git-Url: http://git.sameswireless.fr/l2tpns.git/blobdiff_plain/e3f281ce02023aed0fa1a0cb14b82e63d3b718a0..4b119fa4bf3455ce5eb17e9bccfd2eb1baac7f12:/sessionctl.c?ds=sidebyside diff --git a/sessionctl.c b/sessionctl.c index 43ea8d6..a8c11bd 100644 --- a/sessionctl.c +++ b/sessionctl.c @@ -1,14 +1,15 @@ #include +#include +#include + #include "l2tpns.h" #include "plugin.h" #include "control.h" /* session control */ -char const *cvs_id = "$Id: sessionctl.c,v 1.1 2005/05/10 06:44:11 bodea Exp $"; - int plugin_api_version = PLUGIN_API_VERSION; -static struct pluginfuncs *p = 0; +static struct pluginfuncs *f = 0; char *plugin_control_help[] = { " drop USER|SID [REASON] Shutdown user session", @@ -16,15 +17,6 @@ char *plugin_control_help[] = { 0 }; -int plugin_init(struct pluginfuncs *funcs) -{ - if (!funcs) - return 0; - - p = funcs; - return 1; -} - int plugin_control(struct param_control *data) { sessionidt session; @@ -49,10 +41,10 @@ int plugin_control(struct param_control *data) } if (!(session = strtol(data->argv[1], &end, 10)) || *end) - session = p->get_session_by_username(data->argv[1]); + session = f->get_session_by_username(data->argv[1]); if (session) - s = p->get_session_by_id(session); + s = f->get_session_by_id(session); if (!s || !s->ip) { @@ -64,15 +56,20 @@ int plugin_control(struct param_control *data) if (data->argc > 2) reason = data->argv[2]; else - reaons = "Requested by administrator."; + reason = "Requested by administrator."; if (data->argv[0][0] == 'd') - p->sessionshutdown(session, reason, 3, 0); + f->sessionshutdown(session, reason, CDN_ADMIN_DISC, TERM_ADMIN_RESET); else - p->sessionkill(session, reason); + f->sessionkill(session, reason); data->response = NSCTL_RES_OK; data->additional = 0; return PLUGIN_RET_STOP; } + +int plugin_init(struct pluginfuncs *funcs) +{ + return ((f = funcs)) ? 1 : 0; +}