📄 save_slave.cgi
字号:
#! /usr/bin/perl## B9DDNS - BIND 9 dynamic DNS webmin module.# Copyright (C) 2003 John Horne. <john.horne@plymouth.ac.uk># Copyright (C) 2004 John Horne. <john.horne@plymouth.ac.uk>## This program is free software; you can redistribute it and/or modify# it under the terms of the GNU General Public License as published by# the Free Software Foundation; either version 2 of the License, or# (at your option) any later version.## This program is distributed in the hope that it will be useful,# but WITHOUT ANY WARRANTY; without even the implied warranty of# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the# GNU General Public License for more details.## You should have received a copy of the GNU General Public License# along with this program; if not, write to the Free Software# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.### Save changes to slave zone options.#use strict;no strict 'vars';require './b9ddns-lib.pl';my $indent = 0;my $conf = my $zone_conf = my $view = my $base = '';my $fn1 = my $fn2 = '';&ReadParse();$conf = &get_config();$indent = 1;if ($in{'view'}) { $indent++; $view = $conf->[$in{'view'}]; $conf = $view->{'members'};}$zone_conf = $conf->[$in{'index'}];&error_setup($text{'slave_err'});%access = &get_module_acl();unless (&can_edit_zone(\%access, $zone_conf, $view)) { &terror('slave_ecannot');}if ($access{'ro'}) { &terror('master_ero');}unless ($access{'opts'}) { &terror('master_eoptscannot');}## If 'automatic' has been selected, then get the file name and just treat# it as if the user had manually entered it in.#$base = &zone_dir(0, \%access);if ($in{'file_def'} == 2) { $in{'file_def'} = 0; $in{'file'} = &create_zone_fn($conf, $zone_conf->{'value'}, $in{'rev'}, \%access, $base);}unless ($in{'file'} =~ /^\//o) { $in{'file'} = $base . '/' . $in{'file'};}$fn1 = $in{'file'};$fn2 = &absolute_path($in{'oldfile'});$base = &base_directory();$in{'file'} =~ s/^$base\/// if ($base); # Only need to save the shortened name.&lock_file($config{'chroot'} . $zone_conf->{'file'});&save_addr_match('masters', $zone_conf, $indent, 1, 1);&save_opt('file', \&file_check, $zone_conf, $indent);&save_addr_match('allow-query', $zone_conf, $indent);if ($in{'type'} eq 'slave') { # It's a slave zone - not a stub. &save_opt('max-transfer-time-in', \&mtti_check, $zone_conf, $indent); &save_addr_match('allow-transfer', $zone_conf, $indent, 0, 0); &save_addr_match('allow-update-forwarding', $zone_conf, $indent, 0, 0);}&flush_file_lines();&unlock_file($config{'chroot'} . $zone_conf->{'file'});&webmin_log('opts', undef, $zone_conf->{'value'}, \%in);&redirect("edit_zone.cgi?index=$in{'index'}&view=$in{'view'}&type=$in{'type'}&cmd=reconfig");exit;sub mtti_check { if ($in{'max_transfer_time_in_def'} == 0) { if (! $_[0]) { return &text('slave_emax_none'); } elsif ($_[0] =~ /\D/o) { return &text('slave_emax', $_[0]); } } return undef;}sub file_check { return &zone_file_check($conf, $_[0], \%access, ($fn1 ne $fn2));}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -