From: root Date: Fri, 5 Feb 2010 12:27:11 +0000 (+0100) Subject: Fixed the urlfilter bug #0000552 X-Git-Tag: v2.9-beta1~472 X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=commitdiff_plain;h=8f451574ddb9611213fc0544ba2864d69cb3bcd2;ds=sidebyside Fixed the urlfilter bug #0000552 The config recently contained all filter destinations thats why the squidGuard exhausts the memory for each filter process even when the filter destination was not used by any rule. The destinations were added because time constraints were not able to add needed destinations, so all destination were added by the config parser. Now the config parser checks if the destination is enabled by generel, if not it checks if the destination is needed by a time constraint. --- diff --git a/html/cgi-bin/urlfilter.cgi b/html/cgi-bin/urlfilter.cgi index f1862f1cf0..2d180e2929 100644 --- a/html/cgi-bin/urlfilter.cgi +++ b/html/cgi-bin/urlfilter.cgi @@ -2,7 +2,7 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2010 Michael Tremer & Christian Schmidt # # # # This program is free software: you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # @@ -2973,7 +2973,24 @@ sub writeconfigfile foreach $category (@categories) { $blacklist = $category; $category =~ s/\//_/g; - #if ( $filtersettings{"FILTER_".uc($category)} ne "on" ){next;} + + if ( $filtersettings{"FILTER_".uc($category)} ne "on" ){ + my $constraintrule = "false"; + + foreach (@tclist){ + chomp; + @tc = split(/\,/); + $tc[13] =~ s/\//_/g; + if ($tc[15] eq 'on' && $tc[13] =~ $category){ + $constraintrule = "true"; + } + } + + if ( $constraintrule eq "false"){ + next; + } + } + print FILE "dest $category {\n"; if (-e "$dbdir/$blacklist/domains") { print FILE " domainlist $blacklist\/domains\n";