]> git.ipfire.org Git - people/pmueller/ipfire-2.x.git/blobdiff - html/cgi-bin/index.cgi
Touch is an nem anderen Ort...
[people/pmueller/ipfire-2.x.git] / html / cgi-bin / index.cgi
index 7bcf44522450266a16566cc33fc187249692989f..921e299e2e5a53a72bbe937607c7f9eee2893d3d 100644 (file)
@@ -67,21 +67,17 @@ my $dialButtonDisabled = "disabled='disabled'";
 &Header::openbigbox('', 'center');
 &Header::openbox('100%', 'center', &Header::cleanhtml(`/bin/uname -n`,"y"));
 
-if ( ( $pppsettings{'VALID'} eq 'yes'&& $modemsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) {
-       if ($connstate =~ /$Lang::tr{'connected'}/) {
-           if ($ddnssettings{'BEHINDROUTER'} eq 'FETCH_IP') {
-               if (open(IPADDR,"${General::swroot}/ddns/ipcache")) {
-                   $ipaddr = <IPADDR>;
-                   close IPADDR;
-                   chomp ($ipaddr);
-               }
-           }
-           if (open(IPADDR,"${General::swroot}/red/local-ipaddress")) {
-               my $ipaddr = <IPADDR>;
-               close IPADDR;
-               chomp ($ipaddr);
-           }
-        }
+if ( ( $pppsettings{'VALID'} eq 'yes' && $modemsettings{'VALID'} eq 'yes' ) || ( $netsettings{'CONFIG_TYPE'} =~ /^(2|3|6|7)$/ && $netsettings{'RED_TYPE'} =~ /^(DHCP|STATIC)$/ )) {
+       if (open(IPADDR,"${General::swroot}/ddns/ipcache")) {
+           $ipaddr = <IPADDR>;
+           close IPADDR;
+           chomp ($ipaddr);
+       }
+       if (open(IPADDR,"${General::swroot}/red/local-ipaddress")) {
+           my $ipaddr = <IPADDR>;
+           close IPADDR;
+           chomp ($ipaddr);
+       }
 } elsif ($modemsettings{'VALID'} eq 'no') {
        print "$Lang::tr{'modem settings have errors'}\n </b></font>\n";
 } else {
@@ -102,13 +98,12 @@ print <<END;
 
 <!-- Table of networks -->
 <table border='0' width=80%>
-  <!--  Headline -->
   <tr> <th bgcolor='lightgrey'>$Lang::tr{'network'}
        <th bgcolor='lightgrey'>IP
        <th bgcolor='lightgrey'>$Lang::tr{'status'}
-  <!-- RED -->
-  <tr> <td bgcolor='$Header::colourred' width='25%'><font size='2' color='white'><b>$Lang::tr{'internet'}:</b></font><br>
-       <td width='30%'>$ipaddr <td width='45%'>$connstate
+  <tr> <td bgcolor='$Header::colourred' width='25%'><a href="/cgi-bin/pppsetup.cgi"><font size='2' color='white'><b>$Lang::tr{'internet'}:</b></font></a><br>
+       <td width='30%'>$ipaddr 
+       <td width='45%'>$connstate
        <tr><td colspan='2'>
                <form method='post' action='/cgi-bin/dial.cgi'>$Lang::tr{'profile'}:
                        <select name='PROFILE'>
@@ -142,7 +137,7 @@ END
        }
 
        if ( $netsettings{'GREEN_DEV'} ) { print <<END;
-               <tr><td bgcolor='$Header::colourgreen' width='25%'><font size='2' color='white'><b>$Lang::tr{'lan'}:</b></font>
+               <tr><td bgcolor='$Header::colourgreen' width='25%'><a href="/cgi-bin/dhcp.cgi"><font size='2' color='white'><b>$Lang::tr{'lan'}:</b></font></a>
                <td width='30%'>$netsettings{'GREEN_ADDRESS'}
                <td width='45%'>
 END
@@ -152,7 +147,7 @@ END
                }       else { print "Proxy aus"; }
        }
        if ( $netsettings{'BLUE_DEV'} ) { print <<END;
-               <tr><td bgcolor='$Header::colourblue' width='25%'><font size='2' color='white'><b>$Lang::tr{'wireless'}:</b></font><br>
+               <tr><td bgcolor='$Header::colourblue' width='25%'><a href="/cgi-bin/wireless.cgi"><font size='2' color='white'><b>$Lang::tr{'wireless'}:</b></font></a><br>
                <td width='30%'>$netsettings{'BLUE_ADDRESS'}
                <td width='45%'>
 END
@@ -161,26 +156,53 @@ END
                        if ( `cat /var/ipfire/proxy/advanced/settings | grep ^TRANSPARENT_BLUE=on` ) { print " (transparent)"; }
                }       else { print "Proxy aus"; }
        }
-       if (`ifconfig | grep $netsettings{'ORANGE_DEV'}`) { print <<END;
-               <tr><td bgcolor='$Header::colourorange' width='25%'><font size='2' color='white'><b>$Lang::tr{'dmz'}:</b></font><br>
+       if ( $netsettings{'ORANGE_DEV'} ) { print <<END;
+               <tr><td bgcolor='$Header::colourorange' width='25%'><a href="/cgi-bin/dmzholes.cgi"><font size='2' color='white'><b>$Lang::tr{'dmz'}:</b></font></a><br>
                <td width='30%'>$netsettings{'ORANGE_ADDRESS'}
                <td width='45%'><font color=$Header::colourgreen>Online</font>
 END
        }
-       if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` ) { 
+       if ( `cat /var/ipfire/vpn/settings | grep ^ENABLED=on` ||
+            `cat /var/ipfire/vpn/settings | grep ^ENABLED_BLUE=on` ) { 
                my $ipsecip = `cat /var/ipfire/vpn/settings | grep ^VPN_IP= | cut -c 8-`;
+               my @status = `/usr/sbin/ipsec auto --status`;
+               my %confighash = ();
+               &General::readhasharray("${General::swroot}/vpn/config", \%confighash);
                print <<END;
-               <tr><td bgcolor='$Header::colourvpn' width='25%'><font size='2' color='white'><b>$Lang::tr{'vpn'}:</b></font><br>
+               <tr><td bgcolor='$Header::colourvpn' width='25%'><a href="/cgi-bin/vpnmain.cgi"><font size='2' color='white'><b>$Lang::tr{'vpn'}:</b></font></a><br>
                <td width='30%'>$ipsecip
                <td width='45%'><font color=$Header::colourgreen>Online</font>
 END
+               my $id = 0;
+               my $gif;
+               foreach my $key (keys %confighash) {
+                       if ($confighash{$key}[0] eq 'on') { $gif = 'on.gif'; } else { $gif = 'off.gif'; }
+
+                       if ($id % 2) {
+                           print "<tr bgcolor='${Header::table1colour}'>\n";
+                       } else {
+                           print "<tr bgcolor='${Header::table2colour}'>\n";
+                       }
+                       print "<td bgcolor='#ffffff'>&nbsp;</td><td align='center' nowrap='nowrap'>$confighash{$key}[1] / " . $Lang::tr{"$confighash{$key}[3]"} . " (" . $Lang::tr{"$confighash{$key}[4]"} . ")</td>";
+                       my $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourred}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>";
+                       if ($confighash{$key}[0] eq 'off') {
+                           $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourblue}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsclosed'}</font></b></td></tr></table>";
+                       } else {
+                           foreach my $line (@status) {
+                               if ($line =~ /\"$confighash{$key}[1]\".*IPsec SA established/) {
+                                   $active = "<table cellpadding='2' cellspacing='0' bgcolor='${Header::colourgreen}' width='100%'><tr><td align='center'><b><font color='#FFFFFF'>$Lang::tr{'capsopen'}</font></b></td></tr></table>";
+                               }
+                          }
+                       }
+                       print "<td align='center'>$active</td>";
+               }
        }
        if ( `cat /var/ipfire/ovpn/settings | grep ^ENABLED=on` || 
             `cat /var/ipfire/ovpn/settings | grep ^ENABLED_BLUE=on` || 
             `cat /var/ipfire/ovpn/settings | grep ^ENABLED_ORANGE=on`) { 
                my $ovpnip = `cat /var/ipfire/ovpn/settings | grep ^DOVPN_SUBNET= | cut -c 14- | sed -e 's\/\\/255.255.255.0\/\/'`;
                print <<END;
-               <tr><td bgcolor='$Header::colourovpn' width='25%'><font size='2' color='white'><b>OpenVPN:</b></font><br>
+               <tr><td bgcolor='$Header::colourovpn' width='25%'><a href="/cgi-bin/ovpnmain.cgi"><font size='2' color='white'><b>OpenVPN:</b></font></a><br>
                <td width='30%'>$ovpnip
                <td width='45%'><font color=$Header::colourgreen>Online</font>
 END
@@ -193,9 +215,7 @@ END
        <td>$netsettings{'DNS2'}
 END
        }
-print <<END;
-</table>
-END
+
 
 # Memory usage warning
 my @free = `/usr/bin/free`;
@@ -220,7 +240,7 @@ foreach my $line (@df) {
                if ($1<5) {
                        # available:plain value in MB, and not %used as 10% is too much to waste on small disk
                        # and root size should not vary during time
-                       $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !</li>\n";
+                       $warnmessage .= "$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$1M</b> !\n";
                }
                
        } else {
@@ -229,15 +249,17 @@ foreach my $line (@df) {
                if ($1>90) {
                        @temp = split(/ /,$line);
                        $temp2=int(100-$1);
-                       $warnmessage .= "<li> $Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !</li>\n";
+                       $warnmessage .= "$Lang::tr{'filesystem full'}: $temp[0] <b>$Lang::tr{'free'}=$temp2%</b> !\n";
                }
        }
 }
 
 if ($warnmessage) {
-       print "<table border='0'><tr><td align='center' bgcolor=$Header::colourred>$warnmessage</table>";
+       print "<tr><td align='center' bgcolor=$Header::colourred colspan='3'><font color='white'>$warnmessage</font></table>";
 }
-
+print <<END;
+</table>
+END
 &Header::closebox();
 
 &Header::closebigbox();