Handle hostnames with upper-case letters
[webmin.git] / bind8 / conf_trusted.cgi
1 #!/usr/local/bin/perl
2 # Show a form for setting up DNSSEC verification and trusted keys
3
4 require './bind8-lib.pl';
5 &ReadParse();
6 $access{'defaults'} || &error($text{'trusted_ecannot'});
7 &supports_dnssec_client() || &error($text{'trusted_esupport'});
8 &ui_print_header(undef, $text{'trusted_title'}, "",
9                  undef, undef, undef, undef, &restart_links());
10 $conf = &get_config();
11 $options = &find("options", $conf);
12 $mems = $options->{'members'};
13 @dlv = &find("dnssec-lookaside", $mems);
14 $tkeys = &find("trusted-keys", $conf);
15 $tkeys ||= { 'members' => [ ] };
16
17 # Check if not setup at all
18 if (!@dlv && !@{$tkeys->{'members'}}) {
19         print "<center>\n";
20         print &ui_form_start("setup_trusted.cgi", "post");
21
22         print &text('trusted_setup', "<tt>$dnssec_dlv_zone</tt>"),"<p>\n";
23
24         print &ui_form_end([ [ undef, $text{'trusted_ok'} ] ]);
25         print "</center>\n";
26         print "<hr>\n";
27         }
28
29 print &ui_form_start("save_trusted.cgi", "post");
30 print &ui_table_start($text{'trusted_header'}, undef, 4);
31
32 # DNSSEC enabled?
33 print &choice_input($text{'trusted_dnssec'}, 'dnssec-enable', $mems,
34                     $text{'yes'}, 'yes', $text{'no'}, 'no',
35                     $text{'default'}, undef);
36 if (&supports_dnssec_client() == 2) {
37         print &choice_input($text{'trusted_validation'},
38                             'dnssec-validation', $mems,
39                             $text{'yes'}, 'yes', $text{'no'}, 'no',
40                             $text{'default'}, undef);
41         }
42
43 print &ui_table_hr();
44
45 # Trusted DLVs
46 @dtable = ( );
47 $i = 0;
48 foreach $d (@dlv, { 'values' => [ '.' ] }) {
49         $dlv = $d->{'values'}->[0];
50         $dlv = "" if ($dlv eq ".");
51         push(@dtable, [ &ui_opt_textbox("anchor_$i", $d->{'values'}->[2],
52                                         30, $text{'trusted_none'}),
53                         &ui_opt_textbox("dlv_$i", $dlv, 20,
54                                         $text{'trusted_root'}) ]);
55         $i++;
56         }
57 print &ui_table_row($text{'trusted_dlvs'},
58         &ui_columns_table([ $text{'trusted_anchor'}, $text{'trusted_dlv'} ],
59                           undef,
60                           \@dtable), 3);
61
62 # Trusted keys
63 @ktable = ( );
64 $i = 0;
65 foreach $k (@{$tkeys->{'members'}}, { }) {
66         @v = @{$k->{'values'}};
67         @wrapped = ( );
68         while(length($v[3]) > 30) {
69                 push(@wrapped, substr($v[3], 0, 30));
70                 $v[3] = substr($v[3], 30);
71                 }
72         push(@wrapped, $v[3]);
73         push(@ktable, [ &ui_opt_textbox("zone_$i", $k->{'name'}, 20,
74                                         $text{'trusted_none'}),
75                         &ui_textbox("flags_$i", $v[0], 6),
76                         &ui_textbox("proto_$i", $v[1], 6),
77                         &ui_textbox("alg_$i", $v[2], 6),
78                         &ui_textarea("key_$i", join("\n", @wrapped), 4, 32) ]);
79         $i++;
80         }
81 print &ui_table_row($text{'trusted_keys'},
82         &ui_columns_table([ $text{'trusted_zone'}, $text{'trusted_flags'},
83                             $text{'trusted_proto'}, $text{'trusted_alg'},
84                             $text{'trusted_key'} ],
85                           undef,
86                           \@ktable), 3);
87
88 print &ui_table_end();
89 print &ui_form_end([ [ undef, $text{'save'} ] ]);
90
91 &ui_print_footer("", $text{'index_return'});