php IHDR w Q )Ba pHYs sRGB gAMA a IDATxMk\U s&uo,mD )Xw+e?tw.oWp;QHZnw`gaiJ9̟灙a=nl[ ʨ G;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ w@H;@ q$ y H@E7j 1j+OFRg}ܫ;@Ea~ j`u'o> j- $_q?qS XzG'ay
files >> /usr/libexec/webmin/bind8/ |
files >> //usr/libexec/webmin/bind8/save_controls.cgi |
#!/usr/bin/perl # Save control interface options use strict; use warnings; no warnings 'redefine'; no warnings 'uninitialized'; our (%access, %text, %in, %config); require './bind8-lib.pl'; $access{'defaults'} || &error($text{'controls_ecannot'}); &error_setup($text{'controls_err'}); &ReadParse(); # Validate and store inputs &lock_file(&make_chroot($config{'named_conf'})); my $parent = &get_config_parent(); my $conf = &get_config(); my $controls = &find("controls", $conf); if (!$controls) { $controls = { 'name' => 'controls', 'type' => 1 }; &save_directive($parent, "controls", [ $controls ]); } my $inet = &find("inet", $controls->{'members'}); my $unix = &find("unix", $controls->{'members'}); # Save inet control options if ($in{'inet'}) { $inet ||= { 'name' => 'inet', 'type' => 2 }; &check_ipaddress($in{'ip'}) || &error($text{'controls_einetip'}); $in{'port'} =~ /^\d+$/ && $in{'port'} > 0 && $in{'port'} < 65536 || &error($text{'controls_einetport'}); $inet->{'values'} = [ $in{'ip'}, "port", $in{'port'} ]; my @allow = split(/\s+/, $in{'allow'}); foreach my $a (@allow) { &check_ipaddress($a) || &error(&text('controls_einetallow', $a)); } @allow || &error($text{'controls_einetallows'}); $inet->{'members'}->{'allow'} = [ map { { 'name' => $_ } } @allow ]; my @keys = split(/\s+/, $in{'keys'}); if (@keys) { $inet->{'members'}->{'keys'} = [ map { { 'name' => $_ } } @keys ]; } else { delete($inet->{'members'}->{'keys'}); } &save_directive($controls, "inet", [ $inet ], 1); } else { &save_directive($controls, "inet", [ ], 1); } # Save local control options if ($in{'unix'}) { $unix ||= { 'name' => 'unix', 'type' => 0 }; $in{'path'} =~ /^\/\S+$/ || &error($text{'controls_eunixpath'}); $in{'perm'} =~ /^[0-7]{3,4}$/ || &error($text{'controls_eunixperm'}); my $owner = getpwnam($in{'owner'}); defined($owner) || &error($text{'controls_eunixowner'}); my $group = getgrnam($in{'group'}); defined($group) || &error($text{'controls_eunixgroup'}); $unix->{'values'} = [ $in{'path'}, "perm", $in{'perm'}, "owner", $owner, "group", $group ]; &save_directive($controls, "unix", [ $unix ], 1); } else { &save_directive($controls, "unix", [ ], 1); } &flush_file_lines(); &unlock_file(&make_chroot($config{'named_conf'})); &webmin_log("controls", undef, undef, \%in); &redirect("");y~or5J={Eeu磝Qk ᯘG{?+]ן?wM3X^歌>{7پK>on\jy Rg/=fOroNVv~Y+ NGuÝHWyw[eQʨSb> >}Gmx[o[<{Ϯ_qFvM IENDB`