Handle hostnames with upper-case letters
[webmin.git] / bind8 / save_keys.cgi
1 #!/usr/local/bin/perl
2 # save_keys.cgi
3 # Update all the key directives
4
5 require './bind8-lib.pl';
6 $access{'defaults'} || &error($text{'keys_ecannot'});
7 &error_setup($text{'keys_err'});
8 &ReadParse();
9
10 &lock_file(&make_chroot($config{'named_conf'}));
11 $conf = &get_config();
12 @old = &find("key", $conf);
13 for($i=0; defined($id = $in{"id_$i"}); $i++) {
14         next if (!$id);
15         $id =~ /^\S+$/ || &error(&text('keys_ekey', $id));
16         $in{"secret_$i"} =~ /^\S+$/ || &error(&text('keys_esecret', $id));
17         local $k = { 'name' => 'key',
18                      'type' => 1 };
19         $k->{'members'} = $old[$i] ? $old[$i]->{'members'} : [ ];
20         $k->{'values'} = [ $id ];
21         &save_directive($k, "algorithm", [ { 'name' => 'algorithm',
22                                 'values' => [ $in{"alg_$i"} ] } ], 1, 1);
23         &save_directive($k, "secret", [ { 'name' => 'secret',
24                                 'values' => [ $in{"secret_$i"} ] } ], 1, 1);
25         push(@keys, $k);
26         }
27 &save_directive(&get_config_parent(), 'key', \@keys, 0);
28 &flush_file_lines();
29 &unlock_file(&make_chroot($config{'named_conf'}));
30 &webmin_log("keys", undef, undef, \%in);
31 &redirect("");
32