mirror of
https://github.com/webmin/webmin.git
synced 2026-02-03 06:03:28 +00:00
Support the older primary zone type, which is the same as master https://sourceforge.net/p/webadmin/bugs/5584/
This commit is contained in:
@@ -27,7 +27,7 @@ foreach my $v (@views) {
|
||||
push(@zones, &find("zone", $conf));
|
||||
foreach my $z (@zones) {
|
||||
my $tv = &find_value("type", $z->{'members'});
|
||||
next if ($tv ne "master" && $tv ne "hint");
|
||||
next if ($tv ne "master" && $tv ne "primary" && $tv ne "hint");
|
||||
my $file = &find_value("file", $z->{'members'});
|
||||
next if (!$file);
|
||||
if (&is_raw_format_records(&make_chroot($file))) {
|
||||
|
||||
@@ -802,7 +802,8 @@ if ($ipv6) {
|
||||
$rev = &net_to_ip6int($addr, 4*($i+1));
|
||||
$rev =~ s/\.$//g;
|
||||
foreach my $z (@zl) {
|
||||
if (lc($z->{'name'}) eq $rev && $z->{'type'} eq 'master') {
|
||||
if (lc($z->{'name'}) eq $rev &&
|
||||
($z->{'type'} eq 'master' || $z->{'type'} eq 'primary')) {
|
||||
# found the reverse master domain
|
||||
$revconf = $z;
|
||||
last DOMAIN;
|
||||
@@ -822,7 +823,7 @@ else {
|
||||
$zname =~ s/^(\d+)\/(\d+)\.//;
|
||||
if ((lc($zname) eq $rev ||
|
||||
lc($zname) eq "$rev.") &&
|
||||
$z->{'type'} eq "master") {
|
||||
($z->{'type'} eq "master" || $z->{'type'} eq "primary")) {
|
||||
# found the reverse master domain
|
||||
$revconf = $z;
|
||||
last DOMAIN;
|
||||
@@ -870,7 +871,7 @@ DOMAIN: for(my $i=1; $i<@parts; $i++) {
|
||||
my $typed;
|
||||
if ((lc($z->{'name'}) eq $fwd ||
|
||||
lc($z->{'name'}) eq "$fwd.") &&
|
||||
$z->{'type'} eq "master") {
|
||||
($z->{'type'} eq "master" || $z->{'type'} eq "primary")) {
|
||||
# Found the forward master!
|
||||
$fwdconf = $z;
|
||||
last DOMAIN;
|
||||
@@ -4304,7 +4305,7 @@ my %cache;
|
||||
&read_file($dnssec_expiry_cache, \%cache);
|
||||
my $changed = 0;
|
||||
foreach my $z (&list_zone_names()) {
|
||||
next if ($z->{'type'} ne 'master');
|
||||
next if ($z->{'type'} ne 'master' && $z->{'type'} ne 'primary');
|
||||
my ($t, $e);
|
||||
if ($cache{$z->{'name'}}) {
|
||||
($t, $e) = split(/\s+/, $cache{$z->{'name'}});
|
||||
@@ -4382,5 +4383,21 @@ my $kvspace = " " x length("@kvalues");
|
||||
return join(" ", @kvalues) . " " . join("\n$kvspace ", splice(@krvalues, 6));
|
||||
}
|
||||
|
||||
# redirect_url(type, [zone], [view])
|
||||
# Returns the URL of the appropriate edit_*.cgi page
|
||||
sub redirect_url
|
||||
{
|
||||
my ($type, $zone, $view) = @_;
|
||||
my $r = $type eq "master" || $type eq "primary" ? "edit_master.cgi" :
|
||||
$type eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi";
|
||||
if ($zone) {
|
||||
$r .= "?zone=".&urlize($zone);
|
||||
if ($view) {
|
||||
$r .= "&view=".&urlize($view);
|
||||
}
|
||||
}
|
||||
return $r;
|
||||
}
|
||||
|
||||
1;
|
||||
|
||||
|
||||
@@ -33,7 +33,8 @@ elsif ($cgi eq 'edit_text.cgi' || $cgi eq 'edit_soa.cgi' ||
|
||||
$cgi eq 'edit_zonekey.cgi' || $cgi eq 'edit_recs.cgi' ||
|
||||
$cgi eq 'edit_record.cgi') {
|
||||
# Find a master zone
|
||||
my ($z) = grep { $_->{'type'} eq 'master' &&
|
||||
my ($z) = grep { ($_->{'type'} eq 'master' ||
|
||||
$_->{'type'} eq 'primary') &&
|
||||
&can_edit_zone($_) } &list_zone_names();
|
||||
return 'none' if (!$z);
|
||||
my $rv = 'zone='.$z->{'zone'}.
|
||||
|
||||
@@ -25,6 +25,7 @@ $access{'delete'} || &error($text{'master_edeletecannot'});
|
||||
my $rev = ($zconf->{'value'} =~ /in-addr\.arpa/i ||
|
||||
$zconf->{'value'} =~ /\.$ipv6revzone/i);
|
||||
my $type = &find("type", $zconf->{'members'})->{'value'};
|
||||
$type = 'master' if ($type eq 'primary');
|
||||
if (!$in{'confirm'} && $config{'confirm_zone'}) {
|
||||
# Ask the user if he is sure ..
|
||||
&ui_print_header(undef, $text{'delete_title'}, "",
|
||||
|
||||
@@ -22,6 +22,7 @@ my $typedesc = $text{"recs_$in{'type'}"} || $in{'type'};
|
||||
|
||||
# Show form for adding a record
|
||||
my $type = $zone->{'type'};
|
||||
$type = 'master' if ($type eq 'primary');
|
||||
my $file = $zone->{'file'};
|
||||
my $form = 0;
|
||||
my $shown_create_form;
|
||||
|
||||
@@ -34,6 +34,5 @@ print &ui_table_row(undef, &ui_checkbox("soa", $config{'updserial_on'},
|
||||
print &ui_table_end();
|
||||
print &ui_form_end($access{'ro'} ? [ ] : [ [ undef, $text{'save'} ] ]);
|
||||
|
||||
&ui_print_footer(($tv eq "master" ? "edit_master.cgi" :
|
||||
$tv eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi").
|
||||
"?zone=$in{'zone'}&view=$in{'view'}", $text{'master_return'});
|
||||
&ui_print_footer(&redirect_url($tv, $in{'zone'}, $in{'view'}),
|
||||
$text{'master_return'});
|
||||
|
||||
@@ -23,7 +23,7 @@ my %taken;
|
||||
my %nets;
|
||||
foreach my $z (@zones) {
|
||||
my $type = &find_value("type", $z->{'members'});
|
||||
next if ($type ne "master");
|
||||
next if ($type ne "master" && $type ne "primary");
|
||||
my $file = &find_value("file", $z->{'members'});
|
||||
my @recs = &read_zone_file($file, $z->{'value'});
|
||||
foreach my $r (@recs) {
|
||||
|
||||
@@ -29,9 +29,5 @@ if ($? || $out =~ /failed|not found|error/i) {
|
||||
&error(&text('restart_endc', "<tt>$out</tt>"));
|
||||
}
|
||||
&webmin_log("freeze", $dom);
|
||||
|
||||
my $tv = $zone->{'type'};
|
||||
&redirect(($tv eq "master" ? "edit_master.cgi" :
|
||||
$tv eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi").
|
||||
"?zone=$in{'zone'}&view=$in{'view'}");
|
||||
&redirect(&redirect_url($zone->{'type'}, $in{'zone'}, $in{'view'}));
|
||||
|
||||
|
||||
@@ -187,6 +187,7 @@ elsif (@zones && (!@views || !$config{'by_view'})) {
|
||||
my $t = $z->{'type'};
|
||||
next if (!$t);
|
||||
$t = "delegation" if ($t eq "delegation-only");
|
||||
$t = "master" if ($t eq "primary");
|
||||
my $zn = $v eq "." ? "<i>$text{'index_root'}</i>"
|
||||
: &ip6int_to_net(&arpa_to_ip($v));
|
||||
if ($z->{'view'}) {
|
||||
@@ -350,6 +351,8 @@ elsif (@zones) {
|
||||
foreach my $z (@zv) {
|
||||
my $v = $z->{'name'};
|
||||
my $t = $z->{'type'};
|
||||
$t = "delegation" if ($t eq "delegation-only");
|
||||
$t = "master" if ($t eq "primary");
|
||||
my $zn = $v eq "." ? "<i>$text{'index_root'}</i>"
|
||||
: &ip6int_to_net(&arpa_to_ip($v));
|
||||
push(@zlinks, "edit_$t.cgi?zone=$z->{'name'}".
|
||||
|
||||
@@ -62,7 +62,7 @@ $in{'ttl_def'} || $in{'ttl'} =~ /^\d+$/ ||
|
||||
|
||||
foreach my $zi (@zones) {
|
||||
print &text('rmass_doing', "<tt>$zi->{'name'}</tt>"),"<br>\n";
|
||||
if ($zi->{'type'} ne 'master') {
|
||||
if ($zi->{'type'} ne 'master' && $zi->{'type'} ne 'primary') {
|
||||
# Skip - not a master zone
|
||||
print $text{'umass_notmaster'},"<p>\n";
|
||||
next;
|
||||
|
||||
@@ -28,7 +28,7 @@ $in{'name_def'} || $in{'name'} || &error($text{'rdmass_ename'});
|
||||
|
||||
foreach my $zi (@zones) {
|
||||
print &text('rdmass_doing', "<tt>$zi->{'name'}</tt>"),"<br>\n";
|
||||
if ($zi->{'type'} ne 'master') {
|
||||
if ($zi->{'type'} ne 'master' && $zi->{'type'} ne 'primary') {
|
||||
# Skip - not a master zone
|
||||
print $text{'umass_notmaster'},"<p>\n";
|
||||
next;
|
||||
|
||||
@@ -63,7 +63,7 @@ elsif ($in{'type'} eq 'ttl') {
|
||||
|
||||
foreach my $zi (@zones) {
|
||||
print &text('umass_doing', "<tt>$zi->{'name'}</tt>"),"<br>\n";
|
||||
if ($zi->{'type'} ne 'master') {
|
||||
if ($zi->{'type'} ne 'master' && $zi->{'type'} ne 'primary') {
|
||||
# Skip - not a master zone
|
||||
print $text{'umass_notmaster'},"<p>\n";
|
||||
next;
|
||||
|
||||
@@ -25,7 +25,7 @@ my $errcount = 0;
|
||||
my $donecount = 0;
|
||||
foreach my $z (@zones) {
|
||||
# Get the key
|
||||
next if ($z->{'type'} ne 'master');
|
||||
next if ($z->{'type'} ne 'master' && $z->{'type'} ne 'primary');
|
||||
my $zonefile = &get_zone_file($z);
|
||||
my $krfile = "$zonefile".".krf";
|
||||
my $dom = $z->{'members'} ? $z->{'values'}->[0] : $z->{'name'};
|
||||
|
||||
@@ -28,14 +28,6 @@ if ($access{'remote'}) {
|
||||
}
|
||||
|
||||
&webmin_log("apply");
|
||||
my $redir_targ = ($in{'type'} eq "master" ? "edit_master.cgi" :
|
||||
$in{'type'} eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi");
|
||||
my $zone;
|
||||
if ($in{'zone'}) {
|
||||
$zone = "?zone=$in{'zone'}";
|
||||
if ($in{'view'}) {
|
||||
$zone .= "&view=$in{'view'}";
|
||||
}
|
||||
}
|
||||
&redirect($zone && $in{'return'} ? "$redir_targ$zone" : "");
|
||||
&redirect($in{'zone'} && $in{'return'} ?
|
||||
&redirect_url($in{'type'}, $in{'zone'}, $in{'view'}) : "");
|
||||
|
||||
|
||||
@@ -17,7 +17,4 @@ my $err = &restart_zone($zone->{'name'}, $zone->{'view'});
|
||||
&error($err) if ($err);
|
||||
&webmin_log("apply", $zone->{'name'});
|
||||
|
||||
my $tv = $zone->{'type'};
|
||||
my $redir_targ = ($tv eq "master" ? "edit_master.cgi" :
|
||||
$tv eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi");
|
||||
&redirect($redir_targ . "?zone=$in{'zone'}&view=$in{'view'}");
|
||||
&redirect(&redirect_url($zone->{'type'}, $in{'zone'}, $in{'view'}));
|
||||
|
||||
@@ -158,7 +158,8 @@ else {
|
||||
# Is this address already in use? Search all domains
|
||||
# to find out..
|
||||
foreach my $z (@zl) {
|
||||
next if ($z->{'type'} ne "master");
|
||||
next if ($z->{'type'} ne "master" &&
|
||||
$z->{'type'} ne "primary");
|
||||
next if ($z->{'name'} =~ /in-addr\.arpa/i);
|
||||
my $file = $z->{'file'};
|
||||
my @frecs = &read_zone_file($file, $z->{'name'});
|
||||
@@ -180,7 +181,8 @@ else {
|
||||
# Is this address already in use? Search all domains
|
||||
# to find out..
|
||||
foreach my $z (@zl) {
|
||||
next if ($z->{'type'} ne "master");
|
||||
next if ($z->{'type'} ne "master" &&
|
||||
$z->{'type'} ne "primary");
|
||||
next if ($z->{'name'} =~ /\.$ipv6revzone/i);
|
||||
my $file = $z->{'file'};
|
||||
my @frecs = &read_zone_file($file, $z->{'name'});
|
||||
|
||||
@@ -60,7 +60,7 @@ foreach my $v (@views) {
|
||||
}
|
||||
foreach my $z (@zoneconfs) {
|
||||
my $type = &find_value("type", $z->{'members'});
|
||||
if ($type eq "master") {
|
||||
if ($type eq "master" || $type eq "primary") {
|
||||
$zmap{$z->{'value'}} = $z;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,14 +14,6 @@ $access{'apply'} || &error($text{'start_ecannot'});
|
||||
my $err = &start_bind();
|
||||
&error($err) if ($err);
|
||||
&webmin_log("start");
|
||||
my $redir_targ = ($in{'type'} eq "master" ? "edit_master.cgi" :
|
||||
$in{'type'} eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi");
|
||||
my $zone;
|
||||
if ($in{'zone'}) {
|
||||
$zone = "?zone=$in{'zone'}";
|
||||
if ($in{'view'}) {
|
||||
$zone .= "&view=$in{'view'}";
|
||||
}
|
||||
}
|
||||
&redirect($zone && $in{'return'} ? "$redir_targ$zone" : "");
|
||||
&redirect($in{'zone'} && $in{'return'} ?
|
||||
&redirect_url($in{'type'}, $in{'zone'}, $in{'view'}) : "");
|
||||
|
||||
|
||||
@@ -8,14 +8,6 @@ $access{'apply'} || &error($text{'stop_ecannot'});
|
||||
$err = &stop_bind();
|
||||
&error($err) if ($err);
|
||||
&webmin_log("stop");
|
||||
my $redir_targ = ($in{'type'} eq "master" ? "edit_master.cgi" :
|
||||
$in{'type'} eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi");
|
||||
my $zone;
|
||||
if ($in{'zone'}) {
|
||||
$zone = "?zone=$in{'zone'}";
|
||||
if ($in{'view'}) {
|
||||
$zone .= "&view=$in{'view'}";
|
||||
}
|
||||
}
|
||||
&redirect($zone && $in{'return'} ? "$redir_targ$zone" : "");
|
||||
&redirect($in{'zone'} && $in{'return'} ?
|
||||
&redirect_url($in{'type'}, $in{'zone'}, $in{'view'}) : "");
|
||||
|
||||
|
||||
@@ -30,8 +30,4 @@ if ($? || $out =~ /failed|not found|error/i) {
|
||||
}
|
||||
&webmin_log("thaw", $dom);
|
||||
|
||||
my $tv = $zone->{'type'};
|
||||
&redirect(($tv eq "master" ? "edit_master.cgi" :
|
||||
$tv eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi").
|
||||
"?zone=$in{'zone'}&view=$in{'view'}");
|
||||
|
||||
&redirect(&redirect_url($zone->{'type'}, $in{'zone'}, $in{'view'}));
|
||||
|
||||
@@ -36,6 +36,5 @@ else {
|
||||
}
|
||||
}
|
||||
|
||||
&ui_print_footer(($tv eq "master" ? "edit_master.cgi" :
|
||||
$tv eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi").
|
||||
"?zone=$in{'zone'}&view=$in{'view'}", $text{'master_return'});
|
||||
&ui_print_footer(&redirect_url($tv, $in{'zone'}, $in{'view'}),
|
||||
$text{'master_return'});
|
||||
|
||||
@@ -34,7 +34,5 @@ print &ui_table_start(&text('whois_header', "<tt>".&html_escape($pcmd)."</tt>"),
|
||||
print &ui_table_row(undef, "<pre>".&html_escape($out)."</pre>", 2);
|
||||
print &ui_table_end();
|
||||
|
||||
&ui_print_footer(($tv eq "master" ? "edit_master.cgi" :
|
||||
$tv eq "forward" ? "edit_forward.cgi" : "edit_slave.cgi").
|
||||
"?zone=$in{'zone'}&view=$in{'view'}", $text{'master_return'});
|
||||
|
||||
&ui_print_footer(&redirect_url($tv, $in{'zone'}, $in{'view'}),
|
||||
$text{'master_return'});
|
||||
|
||||
Reference in New Issue
Block a user