3 # Update all the server directives
5 require './bind8-lib.pl';
6 $access{'defaults'} || &error($text{'servers_ecannot'});
7 &error_setup($text{'servers_err'});
10 &lock_file(&make_chroot($config{'named_conf'}));
11 $conf = &get_config();
12 @old = &find("server", $conf);
13 for($i=0; defined($ip = $in{"ip_$i"}); $i++) {
15 &check_ipaddress($ip) || &error(&text('servers_eip', $ip));
16 $in{"trans_$i"} =~ /^\d*$/ ||
17 &error(&text('servers_etrans', $in{"trans_$i"}));
18 local $s = { 'name' => 'server',
20 $s->{'members'} = $old[$i] ? $old[$i]->{'members'} : [ ];
21 $s->{'values'} = [ $ip ];
22 &save_directive($s, 'bogus',
23 $in{"bogus_$i"} ? [ { 'name' => 'bogus',
24 'values' => [ 'yes' ] } ] : [ ], 1, 1);
25 &save_directive($s, 'transfer-format',
26 $in{"format_$i"} ? [ { 'name' => 'transfer-format',
27 'values' => [ $in{"format_$i"} ] } ]
29 &save_directive($s, 'transfers',
30 $in{"trans_$i"} ne '' ? [ { 'name' => 'transfers',
31 'values' => [ $in{"trans_$i"} ] } ]
34 @keys = split(/\0/, $in{"keys_$i"});
36 local @mems = map { { 'name' => $_ } } @keys;
37 &save_directive($s, 'keys',
40 'members' => \@mems } ], 1, 1);
43 &save_directive($s, 'keys', [ ], 1, 1);
48 &save_directive(&get_config_parent(), 'server', \@servers, 0);
50 &unlock_file(&make_chroot($config{'named_conf'}));
51 &webmin_log("servers", undef, undef, \%in);