projects
/
l2tpns.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fix: session mismatch on group
[l2tpns.git]
/
sessionctl.c
diff --git
a/sessionctl.c
b/sessionctl.c
index
20cf0e1
..
a8c11bd
100644
(file)
--- a/
sessionctl.c
+++ b/
sessionctl.c
@@
-1,14
+1,15
@@
#include <string.h>
#include <string.h>
+#include <sys/socket.h>
+#include <linux/rtnetlink.h>
+
#include "l2tpns.h"
#include "plugin.h"
#include "control.h"
/* session control */
#include "l2tpns.h"
#include "plugin.h"
#include "control.h"
/* session control */
-char const *cvs_id = "$Id: sessionctl.c,v 1.2 2005/05/10 06:48:16 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
+17,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
+41,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
+59,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;
+}