#!/usr/bin/perl
-
+########################################################################
+# Script: convert-outgoingfw
+# Date: 21.03.2013
+# Author: Alexander Marx (amarx@ipfire.org)
+########################################################################
+#
+# This script converts old groups and firewallrules
+# to the new one. This is a 3-step process.
+# STEP1: convert groups ->LOG /var/log/converters
+# STEP2: convert rules ->LOG /var/log/converters
+# STEP3: convert P2P rules
+#
+########################################################################
require '/var/ipfire/general-functions.pl';
my %fwconfigout=();
my %fwdsettings=();
&General::readhash($outfwsettings,\%outsettings);
-
-&process_groups;
-&process_rules;
-&process_p2p;
+#ONLY RUN if /var/ipfire/outgoing exists
+if ( -d "/var/ipfire/outgoing"){
+ &process_groups;
+ &process_rules;
+ &process_p2p;
+}
system("/usr/local/bin/forwardfwctrl");
sub process_groups
{
print LOG "->Host (IP) $ip already exists in custom hosts\n";
$name="host ";
$name2=$name.$ippart;
+ foreach my $key (sort keys %hosts){
+ if($hosts{$key}[0] eq $name2){
+ $hosts{$key}[4]++;
+ }
+ }
+ $name="host ";
+ $name2=$name.$ippart;
$name3="Custom Host";
}
}elsif($byte4 < '255'){
print LOG "Network $ippart already exists in custom networks\n";
$name="net ";
$name2=$name.$ippart;
+ foreach my $key (sort keys %nets){
+ if($nets{$key}[0] eq $name2){
+ $nets{$key}[4]++;
+ }
+ }
+ $name="net ";
+ $name2=$name.$ippart;
$name3="Custom Network";
}
}
print LOG "->Host (MAC) $mac already exists in custom hosts \n";
$name="host ";
$name2=$name.$mac;
+ foreach my $key (sort keys %hosts){
+ if($hosts{$key}[0] eq $name2){
+ $hosts{$key}[4]++;
+ }
+ }
+ $name="host ";
+ $name2=$name.$mac;
$name3="Custom Host";
}
if($name2 && !&check_grp($grp,$name2)){