\n"; next; } my $fullname = $in{'name'} eq '@' ? $zi->{'name'}."." : $in{'name'}.".".$zi->{'name'}."."; &before_editing($zi); my @recs = &read_zone_file($zi->{'file'}, $zi->{'name'}); my $clash; if ($in{'type'} eq 'CNAME' || $in{'clash'}) { # Check if a record with the same name exists if ($in{'type'} eq 'MX') { # MX has to clash on priority too ($clash) = grep { $_->{'name'} eq $fullname && $_->{'type'} eq $in{'type'} && $_->{'values'}->[0] == $mxpri } @recs; } else { # Other types clash on name ($clash) = grep { $_->{'name'} eq $fullname && $_->{'type'} eq $in{'type'} } @recs; } if ($clash) { print &text('rmass_eclash', "".join(" ", @{$clash->{'values'}}).""), "
\n"; next; } } # Check if a record with the same name and value exists ($clash) = grep { $_->{'name'} eq $fullname && $_->{'type'} eq $in{'type'} && join(" ", @{$_->{'values'}}) eq $in{'value'} } @recs; if ($clash) { print &text('rmass_eclash2', "".join(" ", @{$clash->{'values'}}).""),"
\n"; next; } &create_record($zi->{'file'}, $in{'name'}, $in{'ttl'}, "IN", $in{'type'}, $in{'value'}); &bump_soa_record($zi->{'file'}, \@recs); eval { # XXX Can't we use autodie or something standard here? no warnings; local $main::error_must_die = 1; use warnings; &sign_dnssec_zone_if_key($zi, \@recs); }; if ($@) { print &text('rmass_esign', $@),"
\n"; } else { print $text{'rmass_done'},"
\n"; } &after_editing($zi); } &unlock_all_files(); &webmin_log("rcreate", "zones", scalar(@zones)); &ui_print_footer("", $text{'index_return'}); # valname(name) sub valname { return valdnsname($_[0], 0, $in{'origin'}); }