X-Git-Url: http://git.ipfire.org/?a=blobdiff_plain;f=html%2Fcgi-bin%2Fhosts.cgi;h=a99d1364acd64b79c164e4482528d45162aebb44;hb=46443100e0eaa2bd7a23badc8eaeff9d3a1eca5d;hp=e3463d1ac2e2842b5003247249ecabddfa5e4a52;hpb=b1881251d6cdd92c7e887813395386afe9692944;p=people%2Fpmueller%2Fipfire-2.x.git diff --git a/html/cgi-bin/hosts.cgi b/html/cgi-bin/hosts.cgi index e3463d1ac2..a99d1364ac 100644 --- a/html/cgi-bin/hosts.cgi +++ b/html/cgi-bin/hosts.cgi @@ -2,9 +2,9 @@ ############################################################################### # # # IPFire.org - A linux based firewall # -# Copyright (C) 2007 Michael Tremer & Christian Schmidt # +# Copyright (C) 2007-2019 IPFire Team # # # -# This program is free software you can redistribute it and/or modify # +# This program is free software you can redistribute it and/or modify # # it under the terms of the GNU General Public License as published by # # the Free Software Foundation, either version 3 of the License, or # # (at your option) any later version. # @@ -40,7 +40,7 @@ our $datafile = "${General::swroot}/main/hosts"; #(our: used in subroutine) my %color = (); my %mainsettings = (); &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); our %settings = (); #Settings1 @@ -50,9 +50,10 @@ our %settings = (); #Must not be saved ! $settings{'EN'} = ''; # reuse for dummy field in position zero $settings{'IP'} = ''; -$settings{'HOST'} = ''; -$settings{'DOM'} = ''; -my @nosaved=('EN','IP','HOST','DOM'); # List here ALL setting2 fields. Mandatory +$settings{'HOST'} = ''; +$settings{'DOM'} = ''; +$settings{'PTR'} = ''; +my @nosaved=('EN','IP','HOST','DOM','PTR'); # List here ALL setting2 fields. Mandatory $settings{'ACTION'} = ''; # add/edit/remove $settings{'KEY1'} = ''; # point record for ACTION @@ -78,6 +79,10 @@ if (open(FILE, "$datafile")) { ## Settings1 Box not used... &General::readhash("${General::swroot}/main/settings", \%settings); +# Set PTR to off if filed was not received +if ($settings{'PTR'} eq '') { + $settings{'PTR'} = 'off'; +} ## Now manipulate the multi-line list with Settings2 # Basic actions are: @@ -122,13 +127,12 @@ if ($settings{'ACTION'} eq $Lang::tr{'add'}) { $errormessage = $Lang::tr{'invalid domain name'}; } - unless ($errormessage) { if ($settings{'KEY1'} eq '') { #add or edit ? - unshift (@current, "$settings{'EN'},$settings{'IP'},$settings{'HOST'},$settings{'DOM'}\n"); + unshift (@current, "$settings{'EN'},$settings{'IP'},$settings{'HOST'},$settings{'DOM'},$settings{'PTR'}\n"); &General::log($Lang::tr{'hosts config added'}); } else { - @current[$settings{'KEY1'}] = "$settings{'EN'},$settings{'IP'},$settings{'HOST'},$settings{'DOM'}\n"; + @current[$settings{'KEY1'}] = "$settings{'EN'},$settings{'IP'},$settings{'HOST'},$settings{'DOM'},$settings{'PTR'}\n"; $settings{'KEY1'} = ''; # End edit mode &General::log($Lang::tr{'hosts config changed'}); } @@ -150,6 +154,11 @@ if ($settings{'ACTION'} eq $Lang::tr{'edit'}) { $settings{'IP'}=$temp[1]; $settings{'HOST'}=$temp[2]; $settings{'DOM'}=$temp[3]; + if ($temp[4] eq '') { + $settings{'PTR'} = 'on'; + } else { + $settings{'PTR'}=$temp[4]; + } } if ($settings{'ACTION'} eq $Lang::tr{'remove'}) { @@ -190,6 +199,7 @@ if ($settings{'ACTION'} eq '' ) { # First launch from GUI # Place here default value when nothing is initialized $settings{'EN'} = 'on'; $settings{'DOM'} = $settings{'DOMAINNAME'}; + $settings{'PTR'} = 'on'; } &Header::openpage($Lang::tr{'hostname'}, 1, ''); @@ -238,6 +248,7 @@ if ($errormessage) { # Second check box is for editing the list # $checked{'EN'}{'on'} = ($settings{'EN'} eq '' ) ? '' : "checked='checked'"; +$checked{'PTR'}{'on'} = ($settings{'PTR'} eq 'off' ) ? '' : "checked='checked'"; my $buttontext = $Lang::tr{'add'}; if ($settings{'KEY1'} ne '') { @@ -257,9 +268,16 @@ print < $Lang::tr{'hostname'}: * - + + $Lang::tr{'domain name'}: + $Lang::tr{'generate ptr'}: + + + +   +   $Lang::tr{'enabled'} @@ -288,7 +306,8 @@ print < $Lang::tr{'host ip'} $Lang::tr{'hostname'} - $Lang::tr{'domain name'} + $Lang::tr{'domain name'} + $Lang::tr{'ptr'} $Lang::tr{'action'} END @@ -315,6 +334,12 @@ foreach my $line (@current) { $gdesc = $Lang::tr{'click to enable'}; } + if ($temp[4] eq '' || $temp[4] eq 'on') { + $temp[4] = $Lang::tr{'yes'}; + } else { + $temp[4] = $Lang::tr{'no'}; + } + #Colorize each line if ($settings{'KEY1'} eq $key) { print ""; @@ -329,6 +354,7 @@ foreach my $line (@current) { $temp[1] $temp[2] $temp[3] +$temp[4]
@@ -430,14 +456,14 @@ sub SortDataFile my $key = 0; foreach my $line (@current) { chomp( $line); #remove newline because can be on field 5 or 6 (addition of REMARK) - my @temp = ( '','','', ''); + my @temp = ( '','','','',''); @temp = split (',',$line); # Build a pair 'Field Name',value for each of the data dataline. # Each SORTABLE field must have is pair. # Other data fields (non sortable) can be grouped in one - my @record = ('KEY',$key++,'EN',$temp[0],'IP',$temp[1],'HOST',$temp[2],'DOM',$temp[3]); + my @record = ('KEY',$key++,'EN',$temp[0],'IP',$temp[1],'HOST',$temp[2],'DOM',$temp[3],'PTR',$temp[4]); my $record = {}; # create a reference to empty hash %{$record} = @record; # populate that hash with @record $entries{$record->{KEY}} = $record; # add this to a hash of hashes @@ -447,7 +473,7 @@ sub SortDataFile # Each field value is printed , with the newline ! Don't forget separator and order of them. foreach my $entry (sort fixedleasesort keys %entries) { - print FILE "$entries{$entry}->{EN},$entries{$entry}->{IP},$entries{$entry}->{HOST},$entries{$entry}->{DOM}\n"; + print FILE "$entries{$entry}->{EN},$entries{$entry}->{IP},$entries{$entry}->{HOST},$entries{$entry}->{DOM},$entries{$entry}->{PTR}\n"; } close(FILE); @@ -461,5 +487,6 @@ sub SortDataFile # Build the configuration file # sub BuildConfiguration { - system '/usr/local/bin/rebuildhosts'; + &General::system('/usr/local/bin/rebuildhosts'); + &General::system('/usr/local/bin/unboundctrl', 'reload'); }