From: fred_nerk Date: Wed, 24 Mar 2004 04:56:51 +0000 (+0000) Subject: Added autosnoop and autothrottle modules X-Git-Tag: release_1_1_1~3 X-Git-Url: http://git.sameswireless.fr/l2tpns.git/commitdiff_plain/c2f98ee93148952298986946a26be28cab46eb5b?hp=9470c8e12fe4bef4355e9fdb40f83e40e5593743 Added autosnoop and autothrottle modules --- diff --git a/Makefile b/Makefile index 7c48446..a7f3631 100644 --- a/Makefile +++ b/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) diff --git a/autosnoop.c b/autosnoop.c new file mode 100644 index 0000000..1c27190 --- /dev/null +++ b/autosnoop.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include +#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() +{ +} + diff --git a/autothrottle.c b/autothrottle.c new file mode 100644 index 0000000..4d985a2 --- /dev/null +++ b/autothrottle.c @@ -0,0 +1,42 @@ +#include +#include +#include +#include +#include +#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() +{ +} + diff --git a/etc/l2tpns.cfg.default b/etc/l2tpns.cfg.default index 3934559..f6b26e1 100644 --- a/etc/l2tpns.cfg.default +++ b/etc/l2tpns.cfg.default @@ -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"