This commit is contained in:
Brendan O'Dea 2004-11-27 21:10:50 +00:00
parent 95f488fea0
commit 5e337e7ed9
2 changed files with 12 additions and 10 deletions

9
cli.c
View file

@ -2,7 +2,7 @@
// vim: sw=8 ts=8 // vim: sw=8 ts=8
char const *cvs_name = "$Name: $"; char const *cvs_name = "$Name: $";
char const *cvs_id_cli = "$Id: cli.c,v 1.30 2004-11-27 20:41:41 bodea Exp $"; char const *cvs_id_cli = "$Id: cli.c,v 1.31 2004-11-27 21:10:50 bodea Exp $";
#include <stdio.h> #include <stdio.h>
#include <stdarg.h> #include <stdarg.h>
@ -406,9 +406,9 @@ static int cmd_show_session(struct cli_def *cli, char *command, char **argv, int
cli_print(cli, "\tRx Speed:\t%lu", session[s].rx_connect_speed); cli_print(cli, "\tRx Speed:\t%lu", session[s].rx_connect_speed);
cli_print(cli, "\tTx Speed:\t%lu", session[s].tx_connect_speed); cli_print(cli, "\tTx Speed:\t%lu", session[s].tx_connect_speed);
if (session[s].filter_in && session[s].filter_in <= MAXFILTER) if (session[s].filter_in && session[s].filter_in <= MAXFILTER)
cli_print(cli, "\tFilter in:\t%u (%s)", session[s].filter_in, filters[session[s].filter_in-1].name); cli_print(cli, "\tFilter in:\t%u (%s)", session[s].filter_in, ip_filters[session[s].filter_in-1].name);
if (session[s].filter_out && session[s].filter_out <= MAXFILTER) if (session[s].filter_out && session[s].filter_out <= MAXFILTER)
cli_print(cli, "\tFilter out:\t%u (%s)", session[s].filter_out, filters[session[s].filter_out-1].name); cli_print(cli, "\tFilter out:\t%u (%s)", session[s].filter_out, ip_filters[session[s].filter_out-1].name);
if (session[s].snoop_ip && session[s].snoop_port) if (session[s].snoop_ip && session[s].snoop_port)
cli_print(cli, "\tIntercepted:\t%s:%d", inet_toa(session[s].snoop_ip), session[s] .snoop_port); cli_print(cli, "\tIntercepted:\t%s:%d", inet_toa(session[s].snoop_ip), session[s] .snoop_port);
else else
@ -2557,7 +2557,7 @@ ip_filter_rulet *access_list_rule_ext(struct cli_def *cli, char *command, char *
} }
else else
{ {
if (++a >= argc) if (a >= argc - 1)
{ {
cli_print(cli, "Specify %s ip address and wildcard", i ? "destination" : "source"); cli_print(cli, "Specify %s ip address and wildcard", i ? "destination" : "source");
return NULL; return NULL;
@ -2578,6 +2578,7 @@ ip_filter_rulet *access_list_rule_ext(struct cli_def *cli, char *command, char *
} }
*wild = addr.s_addr; *wild = addr.s_addr;
a++;
} }
if (rule.proto == IPPROTO_IP || a >= argc) if (rule.proto == IPPROTO_IP || a >= argc)

View file

@ -1,6 +1,6 @@
// L2TPNS Radius Stuff // L2TPNS Radius Stuff
char const *cvs_id_radius = "$Id: radius.c,v 1.15 2004-11-27 20:42:02 bodea Exp $"; char const *cvs_id_radius = "$Id: radius.c,v 1.16 2004-11-27 21:10:51 bodea Exp $";
#include <time.h> #include <time.h>
#include <stdio.h> #include <stdio.h>
@ -24,6 +24,7 @@ extern tunnelt *tunnel;
extern u32 sessionid; extern u32 sessionid;
extern configt *config; extern configt *config;
extern int *radfds; extern int *radfds;
extern ip_filtert *ip_filters;
static const char *radius_state(int state) static const char *radius_state(int state)
{ {
@ -545,17 +546,17 @@ void processrad(u8 *buf, int len, char socket_index)
// Filter-Id // Filter-Id
char *filter = p + 2; char *filter = p + 2;
int l = p[1] - 2; int l = p[1] - 2;
char *s; char *suffix;
u8 *f = 0; u8 *f = 0;
int i; int i;
LOG(3, 0, s, session[s].tunnel, " Radius reply contains Filter-Id \"%.*s\"\n", l, filter); LOG(3, 0, s, session[s].tunnel, " Radius reply contains Filter-Id \"%.*s\"\n", l, filter);
if ((s = memchr(filter, '.', l))) if ((suffix = memchr(filter, '.', l)))
{ {
int b = s - filter; int b = suffix - filter;
if (l - b == 3 && !memcmp("in", s+1, 2)) if (l - b == 3 && !memcmp("in", suffix+1, 2))
f = &session[s].filter_in; f = &session[s].filter_in;
else if (l - b == 4 && !memcmp("out", s+1, 3)) else if (l - b == 4 && !memcmp("out", suffix+1, 3))
f = &session[s].filter_out; f = &session[s].filter_out;
l = b; l = b;