diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/network/drakfirewall.pm | 11 | ||||
-rw-r--r-- | lib/network/shorewall.pm | 8 |
2 files changed, 10 insertions, 9 deletions
diff --git a/lib/network/drakfirewall.pm b/lib/network/drakfirewall.pm index 8472b3f..c471e88 100644 --- a/lib/network/drakfirewall.pm +++ b/lib/network/drakfirewall.pm @@ -236,18 +236,11 @@ sub set_ifw { ); } - my $set_in_file = sub { - my ($file, @list) = @_; - substInFile { - foreach my $l (@list) { s|^$l\n|| } - $_ .= join("\n", @list) . "\n" if eof && $enabled; - } "$::prefix/etc/shorewall/$file"; - }; substInFile { undef $_ if $_ eq "INCLUDE /etc/ifw/rules", "iptables -I INPUT 2 -j Ifw"; } "$::prefix/etc/shorewall/start"; - $set_in_file->('start', "INCLUDE /etc/ifw/start", "INCLUDE /etc/ifw/rules", "iptables -I INPUT 1 -j Ifw"); - $set_in_file->('stop', "iptables -D INPUT -j Ifw", "INCLUDE /etc/ifw/stop"); + network::shorewall::set_in_file('start', $enabled, "INCLUDE /etc/ifw/start", "INCLUDE /etc/ifw/rules", "iptables -I INPUT 1 -j Ifw"); + network::shorewall::set_in_file('stop', $enabled, "iptables -D INPUT -j Ifw", "INCLUDE /etc/ifw/stop"); } sub choose_watched_services { diff --git a/lib/network/shorewall.pm b/lib/network/shorewall.pm index 0361eb8..a93af5d 100644 --- a/lib/network/shorewall.pm +++ b/lib/network/shorewall.pm @@ -36,6 +36,14 @@ sub get_config_file { map { [ split ' ' ] } grep { !/^#/ } cat_("$::prefix${shorewall_root}/$file"); } +sub set_in_file { + my ($file, $enabled, @list) = @_; + substInFile { + foreach my $l (@list) { s|^$l\n|| } + $_ .= join("\n", @list) . "\n" if eof && $enabled; + } "$::prefix/etc/shorewall/$file"; +} + sub dev_to_shorewall { my ($dev) = @_; $dev =~ /^ippp/ && "ippp+" || |