diff --git a/bind8/edit_recs.cgi b/bind8/edit_recs.cgi index a9663f0af..859e63f8e 100755 --- a/bind8/edit_recs.cgi +++ b/bind8/edit_recs.cgi @@ -27,21 +27,28 @@ if (!$access{'ro'} && $type eq 'master' && $in{'type'} ne 'ALL') { $shown_create_form = 1; } -# Show search form -print &ui_form_start("edit_recs.cgi"); -print &ui_hidden("zone", $in{'zone'}),"\n"; -print &ui_hidden("view", $in{'view'}),"\n"; -print &ui_hidden("type", $in{'type'}),"\n"; -print "$text{'recs_find'}\n"; -print &ui_textbox("search", $in{'search'}, 20),"\n"; -print &ui_submit($text{'recs_search'}),"

\n"; -print &ui_form_end(); -$form++; - if (!$config{'largezones'} || $in{'search'}) { # Get all records @allrecs = grep { !$_->{'generate'} && !$_->{'defttl'} } &read_zone_file($file, $dom); + $nosearch = 1 if (!@allrecs); + } + +if (!$nosearch) { + # Show search form + print &ui_form_start("edit_recs.cgi"); + print &ui_hidden("zone", $in{'zone'}),"\n"; + print &ui_hidden("view", $in{'view'}),"\n"; + print &ui_hidden("type", $in{'type'}),"\n"; + print "$text{'recs_find'}\n"; + print &ui_textbox("search", $in{'search'}, 20),"\n"; + print &ui_submit($text{'recs_search'}),"

\n"; + print &ui_form_end(); + $form++; + } + +if (!$config{'largezones'} || $in{'search'}) { + # Get all records if ($in{'search'}) { # Limit to records matching some search foreach $r (@allrecs) { diff --git a/bind8/lang/en b/bind8/lang/en index 821530f44..56a58a6f4 100644 --- a/bind8/lang/en +++ b/bind8/lang/en @@ -296,6 +296,8 @@ edit_espfexp='$1' is a valid record name for a rejection message edit_ensec3value2=Missing or non-numeric number of iterations edit_ensec3value2=Missing or non-base64 salt edit_edmarcpct=Percentage of messages must be an integer between 0 and 100 +edit_edmarcrua=Missing aggregate feedback address +edit_edmarcruf=Missing forensic information address text_title=Edit Records File text_title2=View Records File diff --git a/bind8/records-lib.pl b/bind8/records-lib.pl index f746293aa..aff07423e 100755 --- a/bind8/records-lib.pl +++ b/bind8/records-lib.pl @@ -770,7 +770,7 @@ if ($txt =~ /^v=dmarc1/i) { foreach my $w (@w) { $w = lc($w); if ($w =~ /^(v|pct|ruf|rua|p|sp|adkim|aspf)=(\S+)$/i) { - push(@{$dmarc->{$1}}, $2); + $dmarc->{$1} = $2; } else { push(@{$dmarc->{'other'}}, $w); diff --git a/bind8/save_record.cgi b/bind8/save_record.cgi index 6c1b998ec..a9a14ff9d 100755 --- a/bind8/save_record.cgi +++ b/bind8/save_record.cgi @@ -362,8 +362,10 @@ else { delete($dmarc->{'rua'}); } else { - $in{'dmarcrua'} =~ /^\S+$/ || &error($text{'edit_edmarcrua'}); - $in{'dmarcrua'} = 'mailto:' if ($in{'dmarcrua'} !~ /^[a-z]+:/i); + $in{'dmarcrua'} =~ /^\S+$/ || + &error($text{'edit_edmarcrua'}); + $in{'dmarcrua'} = 'mailto:'.$in{'dmarcrua'} + if ($in{'dmarcrua'} !~ /^[a-z]+:/i); $dmarc->{'rua'} = $in{'dmarcrua'}; } @@ -371,8 +373,10 @@ else { delete($dmarc->{'ruf'}); } else { - $in{'dmarcruf'} =~ /^\S+$/ || &error($text{'edit_edmarcruf'}); - $in{'dmarcruf'} = 'mailto:' if ($in{'dmarcruf'} !~ /^[a-z]+:/i); + $in{'dmarcruf'} =~ /^\S+$/ || + &error($text{'edit_edmarcruf'}); + $in{'dmarcruf'} = 'mailto:'.$in{'dmarcruf'} + if ($in{'dmarcruf'} !~ /^[a-z]+:/i); $dmarc->{'ruf'} = $in{'dmarcruf'}; }