summaryrefslogtreecommitdiffstats
path: root/etc/inc
diff options
context:
space:
mode:
authorDaniel Becker <razzfazz@gmail.com>2013-07-29 22:46:57 -0700
committerDaniel Becker <razzfazz@gmail.com>2013-07-29 22:46:57 -0700
commit6ed5c06bc8ec67804b17a5709e65a3789000492b (patch)
treee94503f68ff84ed2ce2a1f52ef33c93e55789d6c /etc/inc
parent4e8eec4c3c4fb395a90523ca47360550a1400d04 (diff)
downloadpfsense-6ed5c06bc8ec67804b17a5709e65a3789000492b.zip
pfsense-6ed5c06bc8ec67804b17a5709e65a3789000492b.tar.gz
use correct domain names when registering static DHCP entries in DNS
When registering static DHCP entries in DNS, we first try to use the domain name configured for the static entry (if any), then the domain name configured in the DHCP server settings for the corresponding interface (if any), and as a last resort the system domain name. This change was proposed by user TechSmurf on the pfSense boards; see <http://forum.pfsense.org/index.php/topic,64934.msg352331.html#msg352331>.
Diffstat (limited to 'etc/inc')
-rw-r--r--etc/inc/system.inc12
1 files changed, 10 insertions, 2 deletions
diff --git a/etc/inc/system.inc b/etc/inc/system.inc
index 75ee8f9..7e59a59 100644
--- a/etc/inc/system.inc
+++ b/etc/inc/system.inc
@@ -276,14 +276,22 @@ function system_hosts_generate() {
foreach ($config['dhcpd'] as $dhcpif => $dhcpifconf)
if(is_array($dhcpifconf['staticmap']) && isset($dhcpifconf['enable']))
foreach ($dhcpifconf['staticmap'] as $host)
- if ($host['ipaddr'] && $host['hostname'])
+ if ($host['ipaddr'] && $host['hostname'] && $host['domain'])
+ $dhosts .= "{$host['ipaddr']} {$host['hostname']}.{$host['domain']} {$host['hostname']}\n";
+ else if ($host['ipaddr'] && $host['hostname'] && $dhcpifconf['domain'])
+ $dhosts .= "{$host['ipaddr']} {$host['hostname']}.{$dhcpifconf['domain']} {$host['hostname']}\n";
+ else if ($host['ipaddr'] && $host['hostname'])
$dhosts .= "{$host['ipaddr']} {$host['hostname']}.{$syscfg['domain']} {$host['hostname']}\n";
}
if (isset($dnsmasqcfg['regdhcpstatic']) && is_array($config['dhcpdv6'])) {
foreach ($config['dhcpdv6'] as $dhcpif => $dhcpifconf)
if(is_array($dhcpifconf['staticmap']) && isset($dhcpifconf['enable']))
foreach ($dhcpifconf['staticmap'] as $host)
- if ($host['ipaddrv6'] && $host['hostname'])
+ if ($host['ipaddrv6'] && $host['hostname'] && $host['domain'])
+ $dhosts .= "{$host['ipaddrv6']} {$host['hostname']}.{$host['domain']} {$host['hostname']}\n";
+ else if ($host['ipaddrv6'] && $host['hostname'] && $dhcpifconf['domain'])
+ $dhosts .= "{$host['ipaddrv6']} {$host['hostname']}.{$dhcpifconf['domain']} {$host['hostname']}\n";
+ else if ($host['ipaddrv6'] && $host['hostname'])
$dhosts .= "{$host['ipaddrv6']} {$host['hostname']}.{$syscfg['domain']} {$host['hostname']}\n";
}
OpenPOWER on IntegriCloud