mirror of
https://github.com/vincentmli/bpfire.git
synced 2026-04-27 03:07:43 +02:00
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.
This commit is contained in:
@@ -383,62 +383,79 @@ END
|
||||
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 align='center' 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%' align='center'>$ovpnip
|
||||
<td width='45%' align='center'><font color=$Header::colourgreen>Online</font>
|
||||
|
||||
###
|
||||
# Check if there is any OpenVPN connection configured.
|
||||
###
|
||||
|
||||
if ( -s "${General::swroot}/ovpn/ovpnconfig")
|
||||
{
|
||||
print <<END;
|
||||
|
||||
<tr>
|
||||
<td align='center' bgcolor='$Header::colourovpn' width='25%'>
|
||||
<a href="/cgi-bin/ovpnmain.cgi"><font size='2' color='white'><b>OpenVPN</b></font></a><br>
|
||||
</td>
|
||||
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 <<END;
|
||||
<td width='30%' align='center'>$ovpnip
|
||||
<td width='45%' align='center'><font color=$Header::colourgreen>Online</font>
|
||||
END
|
||||
|
||||
}
|
||||
|
||||
###
|
||||
# Print the OpenVPN N2N connection status.
|
||||
###
|
||||
if ( -d "${General::swroot}/ovpn/n2nconf") {
|
||||
my %confighash=();
|
||||
# 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 '');
|
||||
&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 $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];
|
||||
}
|
||||
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 <<END;
|
||||
<tr>
|
||||
<td align='left' nowrap='nowrap' bgcolor='$color{'color22'}'>
|
||||
$confighash{$dkey}[1]
|
||||
</td>
|
||||
<td align='center'>
|
||||
$confighash{$dkey}[11]
|
||||
</td>
|
||||
<td align='center' bgcolor='$display_colour'>
|
||||
<b>
|
||||
<font color='#FFFFFF'>
|
||||
$display
|
||||
</font>
|
||||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
print <<END;
|
||||
<tr>
|
||||
<td align='left' nowrap='nowrap' bgcolor='$color{'color22'}'>
|
||||
$confighash{$dkey}[1]
|
||||
</td>
|
||||
<td align='center'>
|
||||
$confighash{$dkey}[11]
|
||||
</td>
|
||||
<td align='center' bgcolor='$display_colour'>
|
||||
<b>
|
||||
<font color='#FFFFFF'>
|
||||
$display
|
||||
</font>
|
||||
</b>
|
||||
</td>
|
||||
</tr>
|
||||
END
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user