From: Christian Schmidt Date: Sun, 17 Jan 2010 12:12:40 +0000 (+0100) Subject: Parse pre Core34 rules correct and enable change logging. X-Git-Tag: v2.9-beta1~517 X-Git-Url: http://git.ipfire.org/?p=people%2Fpmueller%2Fipfire-2.x.git;a=commitdiff_plain;h=2229c89ea8df40e8ad610fce7d144d0554b3430a Parse pre Core34 rules correct and enable change logging. This fixes bug #0000546 and older rules should be parseable by webgui the values are filled up with default when missing. As user requested the ability to enable logging for mode1 rules was added, earlier we were defaulting to logging false. It is recommended to check all outgoing rule if working correct or just reset rules and generate a new set of rules based on core34 features. --- diff --git a/html/cgi-bin/outgoingfw.cgi b/html/cgi-bin/outgoingfw.cgi index 1632f90920..ed87e0d8a3 100644 --- a/html/cgi-bin/outgoingfw.cgi +++ b/html/cgi-bin/outgoingfw.cgi @@ -79,6 +79,19 @@ $outfwsettings{'TIME_TO'} = '00:00'; &General::readhash("${General::swroot}/outgoing/settings", \%outfwsettings); &Header::getcgihash(\%outfwsettings); +############### +# DEBUG DEBUG +#&Header::openbox('100%', 'left', 'DEBUG'); +#my $debugCount = 0; +#foreach my $line (sort keys %outfwsettings) { +#print "$line = $outfwsettings{$line}
\n"; +# $debugCount++; +#} +#print " Count: $debugCount\n"; +#&Header::closebox(); +# DEBUG DEBUG +############### + $selected{'TIME_FROM'}{$outfwsettings{'TIME_FROM'}} = "selected='selected'"; $selected{'TIME_TO'}{$outfwsettings{'TIME_TO'}} = "selected='selected'"; @@ -111,6 +124,10 @@ if ($outfwsettings{'POLICY'} eq 'MODE0'){ $selected{'POLICY'}{'MODE0'} = 'select if ($outfwsettings{'POLICY'} eq 'MODE1'){ $selected{'POLICY'}{'MODE1'} = 'selected'; } else { $selected{'POLICY'}{'MODE1'} = ''; } if ($outfwsettings{'POLICY'} eq 'MODE2'){ $selected{'POLICY'}{'MODE2'} = 'selected'; } else { $selected{'POLICY'}{'MODE2'} = ''; } +# This is a little hack if poeple donĀ“t mark any date then all will be selected, because they might have forgotten to select +# a valid day. A Rule without any matching day will never work, because the timeranges are new feature people might not notice +# that they have to select a day for the rule. + if ( $outfwsettings{'TIME_MON'} eq "" && $outfwsettings{'TIME_TUE'} eq "" && $outfwsettings{'TIME_WED'} eq "" && @@ -199,6 +216,17 @@ if ($outfwsettings{'ACTION'} eq $Lang::tr{'edit'}) foreach $configentry (sort @configs) { @configline = split( /\;/, $configentry ); + + $configline[10] = "on" if not exists $configline[11]; + $configline[11] = "on" if not exists $configline[11]; + $configline[12] = "on" if not exists $configline[12]; + $configline[13] = "on" if not exists $configline[13]; + $configline[14] = "on" if not exists $configline[14]; + $configline[15] = "on" if not exists $configline[15]; + $configline[16] = "on" if not exists $configline[16]; + $configline[17] = "00:00" if not exists $configline[17]; + $configline[18] = "00:00" if not exists $configline[18]; + unless (($configline[0] eq $outfwsettings{'STATE'}) && ($configline[1] eq $outfwsettings{'ENABLED'}) && ($configline[2] eq $outfwsettings{'SNET'}) && @@ -241,6 +269,17 @@ if ($outfwsettings{'ACTION'} eq $Lang::tr{'delete'}) foreach $configentry (sort @configs) { @configline = split( /\;/, $configentry ); + + $configline[10] = "on" if not exists $configline[11]; + $configline[11] = "on" if not exists $configline[11]; + $configline[12] = "on" if not exists $configline[12]; + $configline[13] = "on" if not exists $configline[13]; + $configline[14] = "on" if not exists $configline[14]; + $configline[15] = "on" if not exists $configline[15]; + $configline[16] = "on" if not exists $configline[16]; + $configline[17] = "00:00" if not exists $configline[17]; + $configline[18] = "00:00" if not exists $configline[18]; + unless (($configline[0] eq $outfwsettings{'STATE'}) && ($configline[1] eq $outfwsettings{'ENABLED'}) && ($configline[2] eq $outfwsettings{'SNET'}) && @@ -337,15 +376,26 @@ END $outfwsettings{'DIP'} = $configline[7]; $outfwsettings{'DPORT'} = $configline[8]; $outfwsettings{'LOG'} = $configline[9]; - $outfwsettings{'TIME_MON'} = $configline[10]; - $outfwsettings{'TIME_TUE'} = $configline[11]; - $outfwsettings{'TIME_WED'} = $configline[12]; - $outfwsettings{'TIME_THU'} = $configline[13]; - $outfwsettings{'TIME_FRI'} = $configline[14]; - $outfwsettings{'TIME_SAT'} = $configline[15]; - $outfwsettings{'TIME_SUN'} = $configline[16]; - $outfwsettings{'TIME_FROM'} = $configline[17]; - $outfwsettings{'TIME_TO'} = $configline[18]; + + $configline[10] = "on" if not exists $configline[11]; + $configline[11] = "on" if not exists $configline[11]; + $configline[12] = "on" if not exists $configline[12]; + $configline[13] = "on" if not exists $configline[13]; + $configline[14] = "on" if not exists $configline[14]; + $configline[15] = "on" if not exists $configline[15]; + $configline[16] = "on" if not exists $configline[16]; + $configline[17] = "00:00" if not exists $configline[17]; + $configline[18] = "00:00" if not exists $configline[18]; + + $outfwsettings{'TIME_MON'} = $configline[10]; + $outfwsettings{'TIME_TUE'} = $configline[11]; + $outfwsettings{'TIME_WED'} = $configline[12]; + $outfwsettings{'TIME_THU'} = $configline[13]; + $outfwsettings{'TIME_FRI'} = $configline[14]; + $outfwsettings{'TIME_SAT'} = $configline[15]; + $outfwsettings{'TIME_SUN'} = $configline[16]; + $outfwsettings{'TIME_FROM'} = $configline[17]; + $outfwsettings{'TIME_TO'} = $configline[18]; if ($outfwsettings{'DIP'} eq ''){ $outfwsettings{'DISPLAY_DIP'} = 'ALL'; } else { $outfwsettings{'DISPLAY_DIP'} = $outfwsettings{'DIP'}; } if ($outfwsettings{'DPORT'} eq ''){ $outfwsettings{'DISPLAY_DPORT'} = 'ALL'; } else { $outfwsettings{'DISPLAY_DPORT'} = $outfwsettings{'DPORT'}; } @@ -577,15 +627,15 @@ sub addrule $Lang::tr{'active'}: $Lang::tr{'protocol'}: - - + + $Lang::tr{'policy'}: END @@ -615,15 +665,10 @@ END $Lang::tr{'source ip'}: $Lang::tr{'logging'}: -END -; -if ($outfwsettings{'POLICY'} eq 'MODE1'){ - print ""; -} -else{ - print ""; -} -print <"; $Lang::tr{'destination ip'}: