aboutsummaryrefslogtreecommitdiffstats
path: root/config/bind/bind.inc
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 /config/bind/bind.inc
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.
Diffstat (limited to 'config/bind/bind.inc')
-rw-r--r--config/bind/bind.inc12
1 files changed, 12 insertions, 0 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;