DHCP entries in /etc/config/dhcp will not automatically create A or PTR
records.  Add an "option dns" directive which appends an entry to
/tmp/hosts/dhcp to facilitate forward and reverse DNS lookups.  For
instance, this item:

    config host
            option ip       '192.168.0.10'
            option mac      '00:13:57:9b:df:02'
            option name     'winpc'
            option dns      '1'

will add a corresponding entry to /tmp/hosts/dhcp:

    192.168.0.10 winpc.lan

This keeps the hostname/IP/MAC in a single place, for easy maintenance.

Related: ticket #13854 reports an regression involving missing PTR
records when using "config domain" to define static DNS entries for
individual hosts.  However, per Simon Kelley[1], the --address feature
used by "config domain" was never intended to generate DNS A records for
hosts.  It would probably be better for the reporter to apply this patch,
and then use "config host" sections instead of "config domain" sections.

[1] http://lists.thekelleys.org.uk/pipermail/dnsmasq-discuss/2008q4/002498.html

Signed-off-by: Kevin Cernekee <cerne...@gmail.com>
---
 .../network/services/dnsmasq/files/dnsmasq.init    |    7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/package/network/services/dnsmasq/files/dnsmasq.init 
b/package/network/services/dnsmasq/files/dnsmasq.init
index b5fb58c..f7edb28 100644
--- a/package/network/services/dnsmasq/files/dnsmasq.init
+++ b/package/network/services/dnsmasq/files/dnsmasq.init
@@ -13,6 +13,7 @@ ADD_LOCAL_DOMAIN=1
 ADD_LOCAL_HOSTNAME=1
 
 CONFIGFILE="/var/etc/dnsmasq.conf"
+HOSTFILE="/tmp/hosts/dhcp"
 
 xappend() {
        local value="$1"
@@ -300,6 +301,11 @@ dhcp_host_add() {
        [ "$broadcast" = "0" ] && broadcast=
 
        xappend 
"--dhcp-host=$macs${networkid:+,net:$networkid}${broadcast:+,set:needs-broadcast}${tag:+,set:$tag}${ip:+,$ip}${name:+,$name}"
+
+       config_get_bool dns "$cfg" dns 0
+       [ "$dns" = "1" ] && {
+               echo "$ip $name${DOMAIN:+.$DOMAIN}" >> $HOSTFILE
+       }
 }
 
 dhcp_tag_add() {
@@ -528,6 +534,7 @@ start_service() {
        mkdir -p $(dirname $CONFIGFILE)
 
        echo "# auto-generated config file from /etc/config/dhcp" > $CONFIGFILE
+       echo "# auto-generated config file from /etc/config/dhcp" > $HOSTFILE
 
        # if we did this last, we could override auto-generated config
        [ -f /etc/dnsmasq.conf ] && {
-- 
1.7.9.5
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel

Reply via email to