]> git.ipfire.org Git - people/teissler/ipfire-2.x.git/blobdiff - config/cfgroot/general-functions.pl
Merge branch 'master' into fifteen
[people/teissler/ipfire-2.x.git] / config / cfgroot / general-functions.pl
index d81c8bb9809921ff7fe7c7c078175104ab4e9bd8..9a5e6714d612e334c96309e9c2cfa2d994ea205b 100644 (file)
@@ -21,8 +21,8 @@ use Net::SSLeay;
 use Net::IPv4Addr qw(:all);
 $|=1; # line buffering
 
-$General::version = '2.11';
-$General::swroot = '/var/ipfire';
+$General::version = 'VERSION';
+$General::swroot = 'CONFIG_ROOT';
 $General::noipprefix = 'noipg-';
 $General::adminmanualurl = 'http://wiki.ipfire.org';
 
@@ -51,17 +51,28 @@ sub setup_default_networks
        $defaultNetworks->{$Lang::tr{'fwhost any'}}{'NAME'} = "ALL";
                
        $defaultNetworks->{$Lang::tr{'green'}}{'IPT'} = "$netsettings{'GREEN_NETADDRESS'}/$netsettings{'GREEN_NETMASK'}";
+       $defaultNetworks->{$Lang::tr{'green'}}{'NET'} = "$netsettings{'GREEN_ADDRESS'}";
        $defaultNetworks->{$Lang::tr{'green'}}{'NAME'} = "GREEN";
 
+       if ($netsettings{'RED_DEV'} ne ''){
+               $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'IPT'} = "$netsettings{'RED_NETADDRESS'}/$netsettings{'RED_NETMASK'}";
+               $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'NET'} = "$netsettings{'RED_ADDRESS'}";
+               $defaultNetworks->{$Lang::tr{'fwdfw red'}}{'NAME'} = "RED";
+       }
        if ($netsettings{'ORANGE_DEV'} ne ''){
                $defaultNetworks->{$Lang::tr{'orange'}}{'IPT'} = "$netsettings{'ORANGE_NETADDRESS'}/$netsettings{'ORANGE_NETMASK'}";
+               $defaultNetworks->{$Lang::tr{'orange'}}{'NET'} = "$netsettings{'ORANGE_ADDRESS'}";
                $defaultNetworks->{$Lang::tr{'orange'}}{'NAME'} = "ORANGE";
        }
 
        if ($netsettings{'BLUE_DEV'} ne ''){
                $defaultNetworks->{$Lang::tr{'blue'}}{'IPT'} = "$netsettings{'BLUE_NETADDRESS'}/$netsettings{'BLUE_NETMASK'}";
+               $defaultNetworks->{$Lang::tr{'blue'}}{'NET'} = "$netsettings{'BLUE_ADDRESS'}";
                $defaultNetworks->{$Lang::tr{'blue'}}{'NAME'} = "BLUE";
        }
+       
+       #IPFire himself
+       $defaultNetworks->{'IPFire'}{'NAME'} = "IPFire";
 
        # OpenVPN
        if(-e "${General::swroot}/ovpn/settings")
@@ -75,8 +86,8 @@ sub setup_default_networks
                        my ($ip,$sub) = split(/\//,$ovpnSettings{'DOVPN_SUBNET'});
                        $sub=&General::iporsubtocidr($sub);
                        my @tempovpnsubnet = split("\/", $ovpnSettings{'DOVPN_SUBNET'});
-                       $defaultNetworks->{'OpenVPN ' .$ip."/".$sub}{'ADR'} = $tempovpnsubnet[0];
-                       $defaultNetworks->{'OpenVPN ' .$ip."/".$sub}{'NAME'} = "OpenVPN-Dyn";
+                       $defaultNetworks->{'OpenVPN ' ."($ip/$sub)"}{'ADR'} = $tempovpnsubnet[0];
+                       $defaultNetworks->{'OpenVPN ' ."($ip/$sub)"}{'NAME'} = "OpenVPN-Dyn";
                }
        } # end OpenVPN
        # IPsec RW NET
@@ -89,26 +100,11 @@ sub setup_default_networks
                        my ($ip,$sub) = split(/\//,$ipsecsettings{'RW_NET'});
                        $sub=&General::iporsubtocidr($sub);
                        my @tempipsecsubnet = split("\/", $ipsecsettings{'RW_NET'});
-                       $defaultNetworks->{'IPsec RW ' .$ip."/".$sub}{'ADR'} = $tempipsecsubnet[0];
-                       $defaultNetworks->{'IPsec RW ' .$ip."/".$sub}{'NAME'} = "IPsec RW";
+                       $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'ADR'} = $tempipsecsubnet[0];
+                       $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'NAME'} = "IPsec RW";
+                       $defaultNetworks->{'IPsec RW (' .$ip."/".$sub.")"}{'NET'} = &getnextip($ip);
                }
        }
-       #open(FILE, "${General::swroot}/ethernet/aliases") or die 'Unable to open aliases file.';
-       #my @current = <FILE>;
-       #close(FILE);
-       #my $ctr = 0;
-       #foreach my $line (@current)
-       #{
-               #if ($line ne ''){
-                       #chomp($line);
-                       #my @temp = split(/\,/,$line);
-                       #if ($temp[2] eq '') {
-                               #$temp[2] = "Alias $ctr : $temp[0]";
-                       #}
-                       #$defaultNetworks->{$temp[2]}{'IPT'} = "$temp[0]";
-                       #$ctr++;
-               #}
-       #}
 }
 sub get_aliases
 {
@@ -127,6 +123,7 @@ sub get_aliases
                                $temp[2] = "Alias $ctr : $temp[0]";
                        }
                        $defaultNetworks->{$temp[2]}{'IPT'} = "$temp[0]";
+                       $defaultNetworks->{$temp[2]}{'NET'} = "$temp[0]";
                        
                        $ctr++;
                }
@@ -232,68 +229,36 @@ sub writehashpart
        close FILE;
 }
 
-sub age
-{
+sub age {
        my ($dev, $ino, $mode, $nlink, $uid, $gid, $rdev, $size,
-               $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0];
-       my $now = time;
-       my $timestring = '';
-       my $dset = 0;           # Day is set, when > 0
-       my $hset = 0;           # Hour is set, when > 0
-       my $mset = 0;           # Minute is set, when > 0
-
-       my $totalsecs = $now - $mtime;
-       my $days = int($totalsecs / 86400);
-       my $totalhours = int($totalsecs / 3600);
-       my $hours = $totalhours % 24;
-       my $totalmins = int($totalsecs / 60);
-       my $mins = $totalmins % 60;
-       my $secs = $totalsecs % 60;
+               $atime, $mtime, $ctime, $blksize, $blocks) = stat $_[0];
+       my $totalsecs = time() - $mtime;
+       my @s = ();
 
-       if      ($days > 1) { 
-               ${timestring} .= ${days}.' '.$Lang::tr{'days'}.', ';
-               $dset = 1; 
-       }
-       elsif   ($days == 1) { 
-               ${timestring} .= ${days}.' '.$Lang::tr{'day'}.', ';
-               $dset = 1; 
+       my $secs = $totalsecs % 60;
+       $totalsecs /= 60;
+       if ($secs > 0) {
+               push(@s, "${secs}s");
        }
 
-       if      (($hours > 1) && !($dset)) { 
-               ${timestring} .= ${hours}.' '.$Lang::tr{'hours'}.', ';
-               $hset = 1;
-       }
-       elsif   (($hours == 1) && !($dset)) { 
-               ${timestring} .= ${hours}.' '.$Lang::tr{'hour'}.', ';
-               $hset = 1;
-       }
-       elsif ($dset) {
-               ${timestring} .= ${hours}.' '.$Lang::tr{'age shour'}.', ';
-               $hset = 1;
+       my $min = $totalsecs % 60;
+       $totalsecs /= 60;
+       if ($min > 0) {
+               push(@s, "${min}m");
        }
 
-       if      ((($mins > 1) || ($mins == 0)) && !($dset || $hset)) { 
-               ${timestring} .= ${mins}.' '.$Lang::tr{'minutes'}.', ';
-               $mset = 1;
-       }
-       elsif   (($mins == 1) && !($dset || $hset)) { 
-               ${timestring} .= ${mins}.' '.$Lang::tr{'minute'}.', ';
-               $mset = 1;
-       }
-       else {
-               ${timestring} .= ${mins}.' '.$Lang::tr{'age sminute'}.', '; 
-               $mset = 1;
+       my $hrs = $totalsecs % 24;
+       $totalsecs /= 24;
+       if ($hrs > 0) {
+               push(@s, "${hrs}h");
        }
 
-       if      ((($secs > 1) || ($secs == 0)) && !($dset || $hset || $mset)) { 
-               ${timestring} .= ${secs}.' '.$Lang::tr{'age seconds'};
-       }
-       elsif   (($secs == 1) && !($dset || $hset || $mset)) { 
-               ${timestring} .= $secs.' '.$Lang::tr{'age second'};
+       my $days = int($totalsecs);
+       if ($days > 0) {
+               push(@s, "${days}d");
        }
-       else    { ${timestring} .= $secs.' '.$Lang::tr{'age ssecond'}; }
 
-       return ${timestring};
+       return join(" ", reverse(@s));
 }
 
 sub validip
@@ -1146,4 +1111,23 @@ sub write_file_utf8 ($) {
        return; 
 }
 
+my $FIREWALL_RELOAD_INDICATOR = "${General::swroot}/firewall/reread";
+
+sub firewall_config_changed() {
+       open FILE, ">$FIREWALL_RELOAD_INDICATOR" or die "Could not open $FIREWALL_RELOAD_INDICATOR";
+       close FILE;
+}
+
+sub firewall_needs_reload() {
+       if (-e "$FIREWALL_RELOAD_INDICATOR") {
+               return 1;
+       }
+
+       return 0;
+}
+
+sub firewall_reload() {
+       system("/usr/local/bin/firewallctrl");
+}
+
 1;