Added support for conditionally using case sensitive filtering files.
Code changes from James E. Flemer.
This commit is contained in:
		
							parent
							
								
									1624979f13
								
							
						
					
					
						commit
						cb7e3eef04
					
				@ -132,6 +132,11 @@ Allow 192.168.1.0/25
 | 
				
			|||||||
#
 | 
					#
 | 
				
			||||||
#FilterExtended On
 | 
					#FilterExtended On
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#
 | 
				
			||||||
 | 
					# Use case sensitive regular expressions.
 | 
				
			||||||
 | 
					#                                                                         
 | 
				
			||||||
 | 
					#FilterCaseSensitive On     
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#
 | 
					#
 | 
				
			||||||
# Change the default policy of the filtering system.  If this directive is
 | 
					# Change the default policy of the filtering system.  If this directive is
 | 
				
			||||||
# commented out, or is set to "No" then the default policy is to allow everything
 | 
					# commented out, or is set to "No" then the default policy is to allow everything
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: filter.c,v 1.15 2002-10-03 20:40:39 rjkaes Exp $
 | 
					/* $Id: filter.c,v 1.16 2003-01-27 17:57:39 rjkaes Exp $
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * Copyright (c) 1999  George Talusan (gstalusan@uwaterloo.ca)
 | 
					 * Copyright (c) 1999  George Talusan (gstalusan@uwaterloo.ca)
 | 
				
			||||||
 * Copyright (c) 2002  James E. Flemer (jflemer@acm.jhu.edu)
 | 
					 * Copyright (c) 2002  James E. Flemer (jflemer@acm.jhu.edu)
 | 
				
			||||||
@ -57,9 +57,11 @@ filter_init(void)
 | 
				
			|||||||
		if (fd) {
 | 
							if (fd) {
 | 
				
			||||||
			p = NULL;
 | 
								p = NULL;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			cflags = REG_NEWLINE | REG_NOSUB | REG_ICASE;
 | 
								cflags = REG_NEWLINE | REG_NOSUB;
 | 
				
			||||||
			if (config.filter_extended)
 | 
								if (config.filter_extended)
 | 
				
			||||||
				cflags |= REG_EXTENDED;
 | 
									cflags |= REG_EXTENDED;
 | 
				
			||||||
 | 
								if (!config.filter_casesensitive)
 | 
				
			||||||
 | 
									cflags |= REG_ICASE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
			while (fgets(buf, FILTER_BUFFER_LEN, fd)) {
 | 
								while (fgets(buf, FILTER_BUFFER_LEN, fd)) {
 | 
				
			||||||
				s = buf;
 | 
									s = buf;
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: grammar.y,v 1.17 2002-11-26 21:44:43 rjkaes Exp $
 | 
					/* $Id: grammar.y,v 1.18 2003-01-27 17:57:39 rjkaes Exp $
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This is the grammar for tinyproxy's configuration file. It needs to be
 | 
					 * 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
 | 
					 * in sync with scanner.l. If you know more about yacc and lex than I do
 | 
				
			||||||
@ -48,6 +48,7 @@ int yylex(void);
 | 
				
			|||||||
%token KW_USER KW_GROUP
 | 
					%token KW_USER KW_GROUP
 | 
				
			||||||
%token KW_ANONYMOUS KW_XTINYPROXY
 | 
					%token KW_ANONYMOUS KW_XTINYPROXY
 | 
				
			||||||
%token KW_FILTER KW_FILTERURLS KW_FILTEREXTENDED KW_FILTER_DEFAULT_DENY
 | 
					%token KW_FILTER KW_FILTERURLS KW_FILTEREXTENDED KW_FILTER_DEFAULT_DENY
 | 
				
			||||||
 | 
					%token KW_FILTER_CASESENSITIVE
 | 
				
			||||||
%token KW_UPSTREAM
 | 
					%token KW_UPSTREAM
 | 
				
			||||||
%token KW_CONNECTPORT KW_BIND KW_HTTP_VIA
 | 
					%token KW_CONNECTPORT KW_BIND KW_HTTP_VIA
 | 
				
			||||||
%token KW_ALLOW KW_DENY
 | 
					%token KW_ALLOW KW_DENY
 | 
				
			||||||
@ -133,6 +134,14 @@ statement
 | 
				
			|||||||
		  config.filter_extended = $2;
 | 
							  config.filter_extended = $2;
 | 
				
			||||||
#else
 | 
					#else
 | 
				
			||||||
		  log_message(LOG_WARNING, "Filter support was not compiled in.");
 | 
							  log_message(LOG_WARNING, "Filter support was not compiled in.");
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
						  }
 | 
				
			||||||
 | 
					        | KW_FILTER_CASESENSITIVE yesno
 | 
				
			||||||
 | 
					          {
 | 
				
			||||||
 | 
					#ifdef FILTER_ENABLE
 | 
				
			||||||
 | 
							  config.filter_casesensitive = $2;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
							  log_message(LOG_WARNING, "Filter support was not compiled in.");
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
	  }
 | 
						  }
 | 
				
			||||||
        | KW_FILTER_DEFAULT_DENY yesno
 | 
					        | KW_FILTER_DEFAULT_DENY yesno
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: scanner.l,v 1.16 2002-11-26 21:44:43 rjkaes Exp $
 | 
					/* $Id: scanner.l,v 1.17 2003-01-27 17:57:38 rjkaes Exp $
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * This builds the scanner for the tinyproxy configuration file. This
 | 
					 * 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
 | 
					 * file needs to stay in sync with grammar.y. If someone knows lex and yacc
 | 
				
			||||||
@ -47,6 +47,7 @@ static struct keyword keywords[] = {
 | 
				
			|||||||
        { "filterurls",          KW_FILTERURLS },
 | 
					        { "filterurls",          KW_FILTERURLS },
 | 
				
			||||||
        { "filterextended",      KW_FILTEREXTENDED },
 | 
					        { "filterextended",      KW_FILTEREXTENDED },
 | 
				
			||||||
        { "filterdefaultdeny",   KW_FILTER_DEFAULT_DENY },
 | 
					        { "filterdefaultdeny",   KW_FILTER_DEFAULT_DENY },
 | 
				
			||||||
 | 
					        { "filtercasesensitive", KW_FILTER_CASESENSITIVE },
 | 
				
			||||||
	{ "xtinyproxy",		 KW_XTINYPROXY },
 | 
						{ "xtinyproxy",		 KW_XTINYPROXY },
 | 
				
			||||||
        { "upstream",            KW_UPSTREAM },
 | 
					        { "upstream",            KW_UPSTREAM },
 | 
				
			||||||
	{ "allow",		 KW_ALLOW },
 | 
						{ "allow",		 KW_ALLOW },
 | 
				
			||||||
 | 
				
			|||||||
@ -1,4 +1,4 @@
 | 
				
			|||||||
/* $Id: tinyproxy.h,v 1.36 2002-12-04 17:06:14 rjkaes Exp $
 | 
					/* $Id: tinyproxy.h,v 1.37 2003-01-27 17:57:37 rjkaes Exp $
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
 * See 'tinyproxy.c' for a detailed description.
 | 
					 * See 'tinyproxy.c' for a detailed description.
 | 
				
			||||||
 *
 | 
					 *
 | 
				
			||||||
@ -38,6 +38,7 @@ struct config_s {
 | 
				
			|||||||
	char *filter;
 | 
						char *filter;
 | 
				
			||||||
	unsigned int filter_url; /* boolean */
 | 
						unsigned int filter_url; /* boolean */
 | 
				
			||||||
	unsigned int filter_extended; /* boolean */
 | 
						unsigned int filter_extended; /* boolean */
 | 
				
			||||||
 | 
					        unsigned int filter_casesensitive; /* boolean */
 | 
				
			||||||
#endif				/* FILTER_ENABLE */
 | 
					#endif				/* FILTER_ENABLE */
 | 
				
			||||||
#ifdef XTINYPROXY_ENABLE
 | 
					#ifdef XTINYPROXY_ENABLE
 | 
				
			||||||
	char *my_domain;
 | 
						char *my_domain;
 | 
				
			||||||
 | 
				
			|||||||
		Loading…
	
		Reference in New Issue
	
	Block a user