From 026c7d9a3dc82556bbb40a37598e4032b046eeb9 Mon Sep 17 00:00:00 2001 From: Robert James Kaes Date: Mon, 27 May 2002 01:52:44 +0000 Subject: Added support for the "FilterURLs" and "FilterExtended" directives. These directives were submitted by James Flemer for use with the new filtering code. --- doc/tinyproxy.conf | 10 ++++++++++ src/grammar.y | 21 +++++++++++++++++++-- src/scanner.l | 4 +++- 3 files changed, 32 insertions(+), 3 deletions(-) diff --git a/doc/tinyproxy.conf b/doc/tinyproxy.conf index b8c20de..e104b58 100644 --- a/doc/tinyproxy.conf +++ b/doc/tinyproxy.conf @@ -123,6 +123,16 @@ Allow 192.168.1.0/25 # #Filter "/etc/tinyproxy/filter" +# +# Filter based on URLs rather than domains. +# +#FilterURLs On + +# +# Use POSIX Extended regular expressions rather than basic. +# +#FilterExtended On + # # If an Anonymous keyword is present, then anonymous proxying is enabled. # The headers listed are allowed through, while all others are denied. If diff --git a/src/grammar.y b/src/grammar.y index da893a5..91a950f 100644 --- a/src/grammar.y +++ b/src/grammar.y @@ -1,4 +1,4 @@ -/* $Id: grammar.y,v 1.12 2002-05-26 18:54:27 rjkaes Exp $ +/* $Id: grammar.y,v 1.13 2002-05-27 01:52:44 rjkaes Exp $ * * This is the grammar for tinyproxy's configuration file. It needs to be * in sync with scanner.l. If you know more about yacc and lex than I do @@ -45,7 +45,8 @@ int yylex(void); %token KW_MAXREQUESTSPERCHILD %token KW_TIMEOUT %token KW_USER KW_GROUP -%token KW_ANONYMOUS KW_FILTER KW_XTINYPROXY +%token KW_ANONYMOUS KW_XTINYPROXY +%token KW_FILTER KW_FILTERURLS KW_FILTEREXTENDED %token KW_TUNNEL KW_UPSTREAM %token KW_CONNECTPORT KW_BIND %token KW_ALLOW KW_DENY @@ -115,6 +116,22 @@ statement config.filter = $2; #else log_message(LOG_WARNING, "Filter support was not compiled in."); +#endif + } + | KW_FILTERURLS yesno + { +#ifdef FILTER_ENABLE + config.filter_url = $2; +#else + log_message(LOG_WARNING, "Filter support wss not compiled in."); +#endif + } + | KW_FILTEREXTENDED yesno + { +#ifdef FILTER_ENABLE + config.filter_extended = $2; +#else + log_message(LOG_WARNING, "Filter support was not compiled in."); #endif } | KW_XTINYPROXY network_address diff --git a/src/scanner.l b/src/scanner.l index d49ed83..885d0a7 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -1,4 +1,4 @@ -/* $Id: scanner.l,v 1.12 2002-05-26 18:54:27 rjkaes Exp $ +/* $Id: scanner.l,v 1.13 2002-05-27 01:52:44 rjkaes Exp $ * * This builds the scanner for the tinyproxy configuration file. This * file needs to stay in sync with grammar.y. If someone knows lex and yacc @@ -44,6 +44,8 @@ static struct keyword keywords[] = { { "group", KW_GROUP }, { "anonymous", KW_ANONYMOUS }, { "filter", KW_FILTER }, + { "filterurls", KW_FILTERURLS }, + { "filterextended", KW_FILTEREXTENDED }, { "xtinyproxy", KW_XTINYPROXY }, { "tunnel", KW_TUNNEL }, { "upstream", KW_UPSTREAM }, -- cgit v1.2.3