aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean Cyr <jcyr@dillobits.com>2013-11-10 01:19:50 -0500
committerJean Cyr <jcyr@dillobits.com>2013-11-10 01:19:50 -0500
commit48ebcfa9b56921dc0470f43504a9bd3426cf1953 (patch)
treed09a6256633462410f1d0ef9895ed96c010bf9ed
parente27e034ec6d8ef1011373ec5d1e479cbe906b111 (diff)
downloadpfsense-packages-48ebcfa9b56921dc0470f43504a9bd3426cf1953.tar.gz
pfsense-packages-48ebcfa9b56921dc0470f43504a9bd3426cf1953.tar.bz2
pfsense-packages-48ebcfa9b56921dc0470f43504a9bd3426cf1953.zip
bind - optionally add static dhcp leases at zone A records
Similar to 'unbound' feature to avoid the need to duplicate static host addresses in both DHCP and BIND. - Add 'Register DHCP static mappings' checkbox to zone form - if checked, enumerate all static DHCP hosts and add to zone, such that their name can be resolved.
-rw-r--r--config/bind/bind.inc12
-rw-r--r--config/bind/bind_zones.xml7
2 files changed, 18 insertions, 1 deletions
diff --git a/config/bind/bind.inc b/config/bind/bind.inc
index a288dcfb..436f352e 100644
--- a/config/bind/bind.inc
+++ b/config/bind/bind.inc
@@ -435,6 +435,14 @@ EOD;
$zone_conf .= "$hostname \t IN $hosttype $hostvalue \t$hostdst\n";
}
+ if (($zone[regdhcpstatic] == 'on') && is_array($config['dhcpd'])) {
+ foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf)
+ if(is_array($dhcpifconf['staticmap']) && isset($dhcpifconf['enable']))
+ foreach ($dhcpifconf['staticmap'] as $host)
+ if ($host['ipaddr'] && $host['hostname']) {
+ $zone_conf .= "{$host['hostname']}\tIN A\t{$host['ipaddr']}\n";
+ }
+ }
if ($zone['customzonerecords']!=""){
$zone_conf .= "\n\n;\n;custom zone records\n;\n".base64_decode($zone['customzonerecords'])."\n";
}
@@ -609,6 +617,7 @@ function bind_print_javascript_type_zone(){
document.iform.forwarders.disabled = 1;
document.iform.dnssec.disabled = 0;
document.iform.backupkeys.disabled = 0;
+ document.iform.regdhcpstatic.disabled = 0;
document.iform.ipns.disabled = 0;
document.iform.mail.disabled = 0;
document.iform.serial.disabled = 0;
@@ -625,6 +634,7 @@ function bind_print_javascript_type_zone(){
document.iform.forwarders.disabled = 1;
document.iform.dnssec.disabled = 0;
document.iform.backupkeys.disabled = 0;
+ document.iform.regdhcpstatic.disabled = 0;
document.iform.ipns.disabled = 1;
document.iform.mail.disabled = 1;
document.iform.serial.disabled = 1;
@@ -641,6 +651,7 @@ function bind_print_javascript_type_zone(){
document.iform.forwarders.disabled = 0;
document.iform.dnssec.disabled = 1;
document.iform.backupkeys.disabled = 1;
+ document.iform.regdhcpstatic.disabled = 1;
document.iform.ipns.disabled = 1;
document.iform.mail.disabled = 1;
document.iform.serial.disabled = 1;
@@ -657,6 +668,7 @@ function bind_print_javascript_type_zone(){
document.iform.forwarders.disabled = 1;
document.iform.dnssec.disabled = 1;
document.iform.backupkeys.disabled = 1;
+ document.iform.regdhcpstatic.disabled = 1;
document.iform.ipns.disabled = 1;
document.iform.mail.disabled = 0;
document.iform.serial.disabled = 0;
diff --git a/config/bind/bind_zones.xml b/config/bind/bind_zones.xml
index 77893417..d5cbe1b8 100644
--- a/config/bind/bind_zones.xml
+++ b/config/bind/bind_zones.xml
@@ -72,7 +72,6 @@
<tab>
<text>Zones</text>
<url>/pkg.php?xml=bind_zones.xml&amp;id=0</url>
- <active/>
</tab>
<tab>
<text>Sync</text>
@@ -385,6 +384,12 @@
</rowhelper>
</field>
<field>
+ <fieldname>regdhcpstatic</fieldname>
+ <fielddescr>Register DHCP static mappings</fielddescr>
+ <description>If this option is set, then DHCP static mappings will be registered in DNS, so that their name can be resolved.</description>
+ <type>checkbox</type>
+ </field>
+ <field>
<type>listtopic</type>
<name>Custom Zone Domain records</name>
<fieldname>temp02</fieldname>