require '/var/ipfire/general-functions.pl';
require "${General::swroot}/lang.pl";
require "${General::swroot}/header.pl";
-require "${General::swroot}/geoip-functions.pl";
require "${General::swroot}/graphs.pl";
my %color = ();
my %netsettings=();
&General::readhash("${General::swroot}/ethernet/settings", \%netsettings);
&General::readhash("${General::swroot}/main/settings", \%mainsettings);
-&General::readhash("/srv/web/ipfire/html/themes/".$mainsettings{'THEME'}."/include/colors.txt", \%color);
+&General::readhash("/srv/web/ipfire/html/themes/ipfire/include/colors.txt", \%color);
my @graphs=();
my %dhcpinfo=();
&Header::closebox();
}
- ## DNSSEC
- my @nameservers = ();
- foreach my $f ("${General::swroot}/red/dns1", "${General::swroot}/red/dns2") {
- open(DNS, "<$f");
- my $nameserver = <DNS>;
- close(DNS);
-
- chomp($nameserver);
- if ($nameserver) {
- push(@nameservers, $nameserver);
- }
- }
-
- &Header::openbox('100%', 'center', $Lang::tr{'dnssec information'});
-
- print <<END;
- <table class="tbl" width='66%'>
- <thead>
- <tr>
- <th align="center">
- <strong>$Lang::tr{'nameserver'}</strong>
- </th>
- <th align="center">
- <strong>$Lang::tr{'country'}</strong>
- </th>
- <th align="center">
- <strong>$Lang::tr{'rdns'}</strong>
- </th>
- <th align="center">
- <strong>$Lang::tr{'status'}</strong>
- </th>
- </tr>
- </thead>
- <tbody>
-END
-
- my $id = 0;
- for my $nameserver (@nameservers) {
- my $status = &check_dnssec($nameserver, "ping.ipfire.org");
-
- my $colour = "";
- my $bgcolour = "";
- my $message = "";
-
- # DNSSEC Not supported
- if ($status == 0) {
- $message = $Lang::tr{'dnssec not supported'};
- $colour = "white";
- $bgcolour = ${Header::colourred};
-
- # DNSSEC Aware
- } elsif ($status == 1) {
- $message = $Lang::tr{'dnssec aware'};
- $colour = "black";
- $bgcolour = ${Header::colouryellow};
-
- # DNSSEC Validating
- } elsif ($status == 2) {
- $message = $Lang::tr{'dnssec validating'};
- $colour = "white";
- $bgcolour = ${Header::colourgreen};
-
- # Error
- } else {
- $colour = ${Header::colourred};
- }
-
- my $table_colour = ($id++ % 2) ? $color{'color22'} : $color{'color20'};
-
- # collect more information about name server (rDNS, GeoIP country code)
- my $ccode = &GeoIP::lookup($nameserver);
- my $flag_icon = &GeoIP::get_flag_icon($ccode);
-
- my $iaddr = inet_aton($nameserver);
- my $rdns = gethostbyaddr($iaddr, AF_INET);
- if (!$rdns) { $rdns = $Lang::tr{'lookup failed'}; }
-
- print <<END;
- <tr bgcolor="$table_colour">
- <td>
- $nameserver
- </td>
- <td align="center">
- <a href='country.cgi#$ccode'><img src="$flag_icon" border="0" alt="$ccode" title="$ccode" /></a>
- </td>
- <td align="center">
- $rdns
- </td>
- <td bgcolor="$bgcolour" align="center">
- <font color="$colour"><strong>$message</strong></font>
- </td>
- </tr>
-END
- }
-
- print <<END;
- </tbody>
- </table>
-END
-
- &Header::closebox();
-
if ( $netsettings{'CONFIG_TYPE'} =~ /^(1|2|3|4)$/ && $netsettings{'RED_TYPE'} eq "DHCP"){
&Header::openbox('100%', 'left', "RED $Lang::tr{'dhcp configuration'}");
&General::readhash("${General::swroot}/dhcpc/dhcpcd-$netsettings{'RED_DEV'}.info", \%dhcpinfo);
- my $DNS1=`echo $dhcpinfo{'domain_name_servers'} | cut -f 1 -d " "`;
- my $DNS2=`echo $dhcpinfo{'domain_name_servers'} | cut -f 2 -d " "`;
+ my ($DNS1, $DNS2) = split(/ /, $dhcpinfo{'domain_name_servers'});
my $lsetme=0;
my $leasetime="";
&Header::closebigbox();
&Header::closepage();
}
-
-sub check_dnssec($$) {
- my $nameserver = shift;
- my $record = shift;
-
- my @command = ("dig", "+dnssec", $record, "\@$nameserver");
-
- my @output = qx(@command);
- my $output = join("", @output);
-
- my $status = 0;
- if ($output =~ m/status: (\w+)/) {
- $status = ($1 eq "NOERROR");
-
- if (!$status) {
- return -1;
- }
- }
-
- my @flags = ();
- if ($output =~ m/flags: (.*);/) {
- @flags = split(/ /, $1);
- }
-
- my $aware = ($output =~ m/RRSIG/);
- my $validating = ("ad" ~~ @flags);
-
- return $aware + $validating;
-}