#include <string.h>
+#include <linux/rtnetlink.h>
+#include <netinet/ip6.h>
+
+#include "dhcp6.h"
#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",
0
};
-int plugin_init(struct pluginfuncs *funcs)
-{
- if (!funcs)
- return 0;
-
- p = funcs;
- return 1;
-}
-
int plugin_control(struct param_control *data)
{
sessionidt session;
}
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)
{
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;
+}