From: Stefan Schantl Date: Sun, 3 Mar 2013 12:05:48 +0000 (+0100) Subject: index.cgi: Show OpenVPN header if server is disabled but N2N connections are used. X-Git-Tag: v2.13-core67~10^2~1^2 X-Git-Url: http://git.ipfire.org/?p=ipfire-2.x.git;a=commitdiff_plain;h=4715ddb3f0d6119c7e5e4df74126a84dab5ab756;hp=30086585ed63e0e1a3cf3a3dc967414af962fa4d;ds=sidebyside index.cgi: Show OpenVPN header if server is disabled but N2N connections are used. If the ovpn server for roadwarrior connections was stopped, there was no OpenVPN header displayed on the index.cgi. If there are configured Net-to-Net connections, they could be established in the background but their status can be found on the VPN (IPsec) section which is wrong. If there is also no IPsec configured there aren't any information about the Net-to-Net connections on the start page. --- diff --git a/html/cgi-bin/index.cgi b/html/cgi-bin/index.cgi index 6919c8cf5d..ea19e26f59 100644 --- a/html/cgi-bin/index.cgi +++ b/html/cgi-bin/index.cgi @@ -383,62 +383,79 @@ END print "$active"; } } - 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\/\/'`; + +### +# Check if there is any OpenVPN connection configured. +### + +if ( -s "${General::swroot}/ovpn/ovpnconfig") + { + print < + + OpenVPN
+ +END + # Check if the OpenVPN server for Road Warrior Connections is running and display status information. + my %confighash=(); + + &General::readhash("${General::swroot}/ovpn/settings", \%confighash); + + if (($confighash{'ENABLED'} eq "on") || + ($confighash{'ENABLED_BLUE'} eq "on") || + ($confighash{'ENABLED_ORANGE'} eq "on")) { + + my $ovpnip = $confighash{'DOVPN_SUBNET'}; print <OpenVPN
$ovpnip - Online - + Online END } -### -# Print the OpenVPN N2N connection status. -### -if ( -d "${General::swroot}/ovpn/n2nconf") { - my %confighash=(); - - &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); - foreach my $dkey (keys %confighash) { - if (($confighash{$dkey}[3] eq 'net') && (-e "/var/run/$confighash{$dkey}[1]n2n.pid")) { - my $tport = $confighash{$dkey}[22]; - next if ($tport eq ''); - - my $tnet = new Net::Telnet ( Timeout=>5, Errmode=>'return', Port=>$tport); - $tnet->open('127.0.0.1'); - my @output = $tnet->cmd(String => 'state', Prompt => '/(END.*\n|ERROR:.*\n)/'); - my @tustate = split(/\,/, $output[1]); - - my $display; - my $display_colour = $Header::colourred; - if ( $tustate[1] eq 'CONNECTED') { - $display_colour = $Header::colourgreen; - $display = $Lang::tr{'capsopen'}; - } else { - $display = $tustate[1]; - } + # Print the OpenVPN N2N connection status. + if ( -d "${General::swroot}/ovpn/n2nconf") { + my %confighash=(); + + &General::readhasharray("${General::swroot}/ovpn/ovpnconfig", \%confighash); + foreach my $dkey (keys %confighash) { + if (($confighash{$dkey}[3] eq 'net') && (-e "/var/run/$confighash{$dkey}[1]n2n.pid")) { + my $tport = $confighash{$dkey}[22]; + next if ($tport eq ''); + + my $tnet = new Net::Telnet ( Timeout=>5, Errmode=>'return', Port=>$tport); + $tnet->open('127.0.0.1'); + my @output = $tnet->cmd(String => 'state', Prompt => '/(END.*\n|ERROR:.*\n)/'); + my @tustate = split(/\,/, $output[1]); + + my $display; + my $display_colour = $Header::colourred; + if ( $tustate[1] eq 'CONNECTED') { + $display_colour = $Header::colourgreen; + $display = $Lang::tr{'capsopen'}; + } else { + $display = $tustate[1]; + } - print < - - $confighash{$dkey}[1] - - - $confighash{$dkey}[11] - - - - - $display - - - - + print < + + $confighash{$dkey}[1] + + + $confighash{$dkey}[11] + + + + + $display + + + + END + } } } }