Added autosnoop and autothrottle modules
This commit is contained in:
parent
9470c8e12f
commit
c2f98ee931
4 changed files with 87 additions and 1 deletions
2
Makefile
2
Makefile
|
|
@ -26,7 +26,7 @@ OBJS= md5.o \
|
|||
control.o \
|
||||
util.o \
|
||||
|
||||
PLUGINS=garden.so
|
||||
PLUGINS=garden.so autothrottle.so autosnoop.so
|
||||
|
||||
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 dump_speed no
|
||||
load plugin "garden"
|
||||
load plugin "autothrottle"
|
||||
load plugin "autosnoop"
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue