filters
[l2tpns.git] / autosnoop.c
1 #include <string.h>
2 #include "l2tpns.h"
3 #include "plugin.h"
4
5 /* set up intercept based on RADIUS reply */
6
7 char const *cvs_id = "$Id: autosnoop.c,v 1.8 2004/11/17 08:23:34 bodea Exp $";
8
9 int plugin_api_version = PLUGIN_API_VERSION;
10 struct pluginfuncs *p;
11
12 int plugin_radius_response(struct param_radius_response *data)
13 {
14 if (strcmp(data->key, "intercept") == 0)
15 {
16 char *x;
17 data->s->snoop_ip = 0;
18 data->s->snoop_port = 0;
19 if ((x = strchr(data->value, ':')))
20 {
21 *x++ = 0;
22 if (*data->value) data->s->snoop_ip = inet_addr(data->value);
23 if (data->s->snoop_ip == INADDR_NONE) data->s->snoop_ip = 0;
24 if (*x) data->s->snoop_port = atoi(x);
25 p->log(3, 0, 0, 0, " Intercepting user to %s:%d\n",
26 p->inet_toa(data->s->snoop_ip), data->s->snoop_port);
27 }
28 else
29 {
30 p->log(3, 0, 0, 0, " Not Intercepting user (reply string should be intercept=ip:port)\n");
31 }
32 }
33 return PLUGIN_RET_OK;
34 }
35
36 int plugin_init(struct pluginfuncs *funcs)
37 {
38 return ((p = funcs)) ? 1 : 0;
39 }