diff options
Diffstat (limited to 'dns_wizard/Bind.pm')
-rw-r--r-- | dns_wizard/Bind.pm | 64 |
1 files changed, 45 insertions, 19 deletions
diff --git a/dns_wizard/Bind.pm b/dns_wizard/Bind.pm index ce59d3a3..88ecad9d 100644 --- a/dns_wizard/Bind.pm +++ b/dns_wizard/Bind.pm @@ -55,7 +55,7 @@ my $DATE = `date +%d-%m-20%y`; my $o = { name => 'DNS Configuration Wizard', - var => { + var => { IPOFFORWARDER => '', ADDSEARCH => '', DOMAINNAME => $DOMAINNAME, @@ -110,7 +110,7 @@ $o->{pages} = { return 'removehost' } }, data => [ - { label => N("What Kind of DNS :"), val => \$o->{var}{wiz_level}, list => [ keys %level ], format => sub { $level{$_[0]} } }, + { label => N("What do you want todo:"), val => \$o->{var}{wiz_level}, list => [ keys %level ], format => sub { $level{$_[0]} } }, ], next => 'ipforward', }, @@ -124,7 +124,7 @@ $o->{pages} = { next => 'summaryadd', }, removehost => { - name => N('Remove Host') . "\n\n" . N('Remove a host in existing dns configuration.') . "\n\n" . N('Choose the host you want to remove in the following list.'), + name => N('Remove host:') . "\n\n" . N('Remove a host in existing dns configuration.') . "\n\n" . N('Choose the host you want to remove in the following list.'), data => [ { label => N("Name of the machine:"), val => \$o->{var}{CLIENTNAME}, fixed_list => \@list_hosts }, ], @@ -134,25 +134,25 @@ $o->{pages} = { slave => { name => N('Slave DNS server') . "\n\n" . N("A slave name server will take some of the burden away from your primary name server, and will also function as a backup server, in case your master server is unreachable."), data => [ - { label => N('IP of master DNS server'), val => \$o->{var}{IPMASTER} }, + { label => N('IP of master DNS server:'), val => \$o->{var}{IPMASTER} }, ], post => \&check_ipm, next => 'summaryslave', }, error_hostname => { - name => N('You need to readjust your hostname'), + name => N('You need to readjust your hostname.'), end => 1, next => 0, }, error_domain => { - name => N('You need to readjust your domainame'), + name => N('You need to readjust your domainame.'), end => 1, next => 0, }, ipforward => { name => N('IP of your forwarders') . "\n\n" . N('Forwarding occurs on only those queries for which the server is not authoritative and does not have the answer in its cache.') . "\n\n" . N('So if you need it and know your ip forwarder enter IP address of it, if you dont know leave it blank'), data => [ - { label => N('IP forwarders'), val => \$o->{var}{IPOFFORWARDER} }, + { label => N('IP forwarders:'), val => \$o->{var}{IPOFFORWARDER} }, ], post => \&check_ipf, next => 'addsearch', @@ -160,22 +160,22 @@ $o->{pages} = { addsearch => { name => N('Add search domain') . "\n\n" . N('Search list for host-name lookup. The search list is normally determined from the local domain name; by default, it contains only the local domain name. This may be changed by listing the desired domain search path following the search keyword') . "\n\n" . N('Domainname of this server is automatically added, and you dont need to add it here.'), data => [ - { label => N('add search domain'), val => \$o->{var}{ADDSEARCH} }, + { label => N('add search domain:'), val => \$o->{var}{ADDSEARCH} }, ], next => 'summary', }, error_ipf => { - name => N('Error IP of forwarder') . "\n\n" . N('This is not a valid IP address for your forwarder... press next to continue'), + name => N('Error IP of forwarder.') . "\n\n" . N('This is not a valid IP address for your forwarder... press next to continue'), ignore => 1, next => 'ipforward', }, error_ipm => { - name => N('Error Ip of DNS master') . "\n\n" . N('This is not a valid Master DNS IP address... press next to continue'), + name => N('Error Ip of DNS master.') . "\n\n" . N('This is not a valid Master DNS IP address... press next to continue'), ignore => 1, next => 'slave', }, error_iph => { - name => N('Error Ip of new host') . "\n\n" . N('This is not a valid IP address... press next to continue'), + name => N('Error Ip of new host.') . "\n\n" . N('This is not a valid IP address... press next to continue'), ignore => 1, next => 'addhost', }, @@ -185,19 +185,29 @@ $o->{pages} = { next => 'client_id' }, error_add => { - name => N('Error add host') . "\n\n" . N('It seems that host is already in your DNS configuration... press next to continue'), + name => N('Error add host.') . "\n\n" . N('It seems that host is already in your DNS configuration... press next to continue'), ignore => 1, next => 'addhost', }, error_remove => { - name => N('Error remove host') . "\n\n" . N('It seems that this is not present in your DNS configuration... press next to continue'), + name => N('Error remove host.') . "\n\n" . N('It seems that this is not present in your DNS configuration... press next to continue'), ignore => 1, next => 'removehost', }, + error_nosrv => { + name => N("It seems that no DNS server has been set through wizard. Please run DNS wizard: Master DNS server."), + next => 0, + end => 1, + }, + error_notmaster => { + name => N("It seems that your are not a master DNS server, but just a slave one. So i can't add/remove host."), + next => 0, + end => 1, + }, summaryslave => { name => N('Ok Now building your DNS slave configuration') . "\n\n" . N('with this configuration:'), data => [ - { label => N('Ip of master DNS server'), fixed_val => \$o->{var}{IPMASTER} }, + { label => N('Ip of master DNS server:'), fixed_val => \$o->{var}{IPMASTER} }, ], post => \&do_it_slave, next => 'end', @@ -222,10 +232,10 @@ $o->{pages} = { summary => { name => N('Ok Now building your DNS configuration') . "\n\n" . N('with this configuration:'), data => [ - { label => N('Server Hostname'), fixed_val => \$o->{var}{SHORTHOSTNAME} }, - { label => N('Domainname'), fixed_val => \$o->{var}{DOMAINNAME} }, - { label => N('IP forwarders'), fixed_val => \$o->{var}{IPOFFORWARDER} }, - { label => N('add search domain'), fixed_val => \$o->{var}{ADDSEARCH} }, + { label => N('Server Hostname:'), fixed_val => \$o->{var}{SHORTHOSTNAME} }, + { label => N('Domainname:'), fixed_val => \$o->{var}{DOMAINNAME} }, + { label => N('IP forwarders:'), fixed_val => \$o->{var}{IPOFFORWARDER} }, + { label => N('add search domain:'), fixed_val => \$o->{var}{ADDSEARCH} }, ], post => \&do_it_master, next => 'end', @@ -255,6 +265,16 @@ sub check_dhcp { $wiz->{net}->is_dhcp() and return 'dhcp_warning'; } +sub test_srv { + my $dir = "/var/named/zone"; + -d $dir or return 'error_nosrv'; +} + +sub test_master { + my $ft = "/var/named/master_srv"; + -f $ft or return 'error_notmaster'; +} + sub interface_to_ip { my ($interface) = @_; my ($ip) = `/sbin/ip addr show dev $interface` =~ /^\s*inet\s+(\d+\.\d+\.\d+\.\d+)/m; @@ -672,12 +692,14 @@ sub do_it_master { return if $::testing; my $in = 'interactive'->vnew('su', 'dns'); my $w = $in->wait_message(N("Master DNS server"), N("Configuring your system as Master DNS server ...")); + my $ft = "/var/named/master_srv"; + system("touch $ft"); do_it(); crea_iprev($IPSERVER, $DOMAINNAME); crea_ipnorm($IPSERVER, $DOMAINNAME); crea_named_master($IPSERVER, $DOMAINNAME); end_it(); -undef $w; + undef $w; } sub do_it_slave { @@ -709,6 +731,8 @@ sub get_shortname { sub do_it_add { return if $::testing; + test_master(); + test_srv(); my $iprev = get_spe_ip('iprev', $IPSERVER); my $ipend = get_spe_ip('ipend', $o->{var}{CLIENTIP}); my $SNAME= get_shortname($o->{var}{CLIENTNAME}); @@ -728,6 +752,8 @@ sub do_it_add { sub do_it_remove { return if $::testing; + test_master(); + test_srv(); my $iprev = get_spe_ip('iprev', $IPSERVER); my $NAME= $o->{var}{CLIENTNAME}; substInFile { |