Added autosnoop and autothrottle modules
This commit is contained in:
parent
7d87e78a12
commit
8ed6b75f5f
4 changed files with 87 additions and 1 deletions
2
Makefile
2
Makefile
|
|
@ -26,7 +26,7 @@ OBJS= md5.o \
|
||||||
control.o \
|
control.o \
|
||||||
util.o \
|
util.o \
|
||||||
|
|
||||||
PLUGINS=garden.so
|
PLUGINS=garden.so autothrottle.so autosnoop.so
|
||||||
|
|
||||||
all: l2tpns cluster_master nsctl $(PLUGINS)
|
all: l2tpns cluster_master nsctl $(PLUGINS)
|
||||||
|
|
||||||
|
|
|
||||||
42
autosnoop.c
Normal file
42
autosnoop.c
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <malloc.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include "l2tpns.h"
|
||||||
|
#include "plugin.h"
|
||||||
|
#include "control.h"
|
||||||
|
|
||||||
|
int __plugin_api_version = 1;
|
||||||
|
struct pluginfuncs p;
|
||||||
|
|
||||||
|
int plugin_radius_response(struct param_radius_response *data)
|
||||||
|
{
|
||||||
|
if (strcmp(data->key, "intercept") == 0)
|
||||||
|
{
|
||||||
|
if (strcmp(data->value, "yes") == 0)
|
||||||
|
{
|
||||||
|
p.log(3, 0, 0, 0, " Intercepting user\n");
|
||||||
|
data->s->snoop = 1;
|
||||||
|
}
|
||||||
|
else if (strcmp(data->value, "no") == 0)
|
||||||
|
{
|
||||||
|
p.log(3, 0, 0, 0, " Not intercepting user\n");
|
||||||
|
data->s->snoop = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PLUGIN_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int plugin_init(struct pluginfuncs *funcs)
|
||||||
|
{
|
||||||
|
if (!funcs) return 0;
|
||||||
|
memcpy(&p, funcs, sizeof(p));
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void plugin_done()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
42
autothrottle.c
Normal file
42
autothrottle.c
Normal file
|
|
@ -0,0 +1,42 @@
|
||||||
|
#include <string.h>
|
||||||
|
#include <malloc.h>
|
||||||
|
#include <stdlib.h>
|
||||||
|
#include <sys/wait.h>
|
||||||
|
#include <sys/types.h>
|
||||||
|
#include "l2tpns.h"
|
||||||
|
#include "plugin.h"
|
||||||
|
#include "control.h"
|
||||||
|
|
||||||
|
int __plugin_api_version = 1;
|
||||||
|
struct pluginfuncs p;
|
||||||
|
|
||||||
|
int plugin_radius_response(struct param_radius_response *data)
|
||||||
|
{
|
||||||
|
if (strcmp(data->key, "throttle") == 0)
|
||||||
|
{
|
||||||
|
if (strcmp(data->value, "yes") == 0)
|
||||||
|
{
|
||||||
|
p.log(3, 0, 0, 0, " Throttling user\n");
|
||||||
|
data->s->throttle = 1;
|
||||||
|
}
|
||||||
|
else if (strcmp(data->value, "no") == 0)
|
||||||
|
{
|
||||||
|
p.log(3, 0, 0, 0, " Not throttling user\n");
|
||||||
|
data->s->throttle = 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PLUGIN_RET_OK;
|
||||||
|
}
|
||||||
|
|
||||||
|
int plugin_init(struct pluginfuncs *funcs)
|
||||||
|
{
|
||||||
|
if (!funcs) return 0;
|
||||||
|
memcpy(&p, funcs, sizeof(p));
|
||||||
|
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
|
||||||
|
void plugin_done()
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
|
@ -17,3 +17,5 @@ set accounting_dir "/var/run/l2tpns/acct/"
|
||||||
set setuid 0
|
set setuid 0
|
||||||
set dump_speed no
|
set dump_speed no
|
||||||
load plugin "garden"
|
load plugin "garden"
|
||||||
|
load plugin "autothrottle"
|
||||||
|
load plugin "autosnoop"
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue