From 8ed6b75f5ff7cdf8f9cea56ed63282d4547f2f0b Mon Sep 17 00:00:00 2001 From: David Parrish Date: Wed, 24 Mar 2004 04:56:51 +0000 Subject: [PATCH] Added autosnoop and autothrottle modules --- Makefile | 2 +- autosnoop.c | 42 ++++++++++++++++++++++++++++++++++++++++++ autothrottle.c | 42 ++++++++++++++++++++++++++++++++++++++++++ etc/l2tpns.cfg.default | 2 ++ 4 files changed, 87 insertions(+), 1 deletion(-) create mode 100644 autosnoop.c create mode 100644 autothrottle.c 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" -- 2.20.1