projects
/
l2tpns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
add Acct-Terminate-Cause to RADIUS stop records
[l2tpns.git]
/
sessionctl.c
diff --git
a/sessionctl.c
b/sessionctl.c
index
7cb0316
..
cc7a13d
100644
(file)
--- a/
sessionctl.c
+++ b/
sessionctl.c
@@
-5,10
+5,10
@@
/* session control */
/* session control */
-char const *cvs_id = "$Id: sessionctl.c,v 1.
2 2005-05-10 06:48:16
bodea Exp $";
+char const *cvs_id = "$Id: sessionctl.c,v 1.
5 2006-04-13 11:14:35
bodea Exp $";
int plugin_api_version = PLUGIN_API_VERSION;
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",
char *plugin_control_help[] = {
" drop USER|SID [REASON] Shutdown user session",
@@
-16,15
+16,6
@@
char *plugin_control_help[] = {
0
};
0
};
-int plugin_init(struct pluginfuncs *funcs)
-{
- if (!funcs)
- return 0;
-
- p = funcs;
- return 1;
-}
-
int plugin_control(struct param_control *data)
{
sessionidt session;
int plugin_control(struct param_control *data)
{
sessionidt session;
@@
-49,10
+40,10
@@
int plugin_control(struct param_control *data)
}
if (!(session = strtol(data->argv[1], &end, 10)) || *end)
}
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)
if (session)
- s =
p
->get_session_by_id(session);
+ s =
f
->get_session_by_id(session);
if (!s || !s->ip)
{
if (!s || !s->ip)
{
@@
-67,12
+58,17
@@
int plugin_control(struct param_control *data)
reason = "Requested by administrator.";
if (data->argv[0][0] == 'd')
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
else
-
p
->sessionkill(session, reason);
+
f
->sessionkill(session, reason);
data->response = NSCTL_RES_OK;
data->additional = 0;
return PLUGIN_RET_STOP;
}
data->response = NSCTL_RES_OK;
data->additional = 0;
return PLUGIN_RET_STOP;
}
+
+int plugin_init(struct pluginfuncs *funcs)
+{
+ return ((f = funcs)) ? 1 : 0;
+}