dnsmasq: add local hostname record for own lan ula address as well
[openwrt/staging/hauke.git] / package / network / services / dnsmasq / files / dnsmasq.init
index d593a51dead5ba518f3393d0b17cdddf6a25ac11..0cec6d8924e559781ab6f1277bcc763fb01c72df 100644 (file)
@@ -130,13 +130,14 @@ dnsmasq() {
        append_bool "$cfg" expandhosts "--expand-hosts"
        append_bool "$cfg" enable_tftp "--enable-tftp"
        append_bool "$cfg" tftp_no_fail "--tftp-no-fail"
-       append_bool "$cfg" nonwildcard "--bind-interfaces"
+       append_bool "$cfg" nonwildcard "--bind-dynamic"
        append_bool "$cfg" fqdn "--dhcp-fqdn"
        append_bool "$cfg" proxydnssec "--proxy-dnssec"
        append_bool "$cfg" localservice "--local-service"
        append_bool "$cfg" quietdhcp "--quiet-dhcp"
        append_bool "$cfg" sequential_ip "--dhcp-sequential-ip"
        append_bool "$cfg" allservers "--all-servers"
+       append_bool "$cfg" noping "--no-ping"
 
        append_parm "$cfg" dhcpscript "--dhcp-script"
        append_parm "$cfg" cachesize "--cache-size"
@@ -598,10 +599,24 @@ start_service() {
        config_foreach dhcp_hostrecord_add hostrecord
 
        # add own hostname
-       local lanaddr
-       [ $ADD_LOCAL_HOSTNAME -eq 1 ] && network_get_ipaddr lanaddr "lan" && {
+       [ $ADD_LOCAL_HOSTNAME -eq 1 ] && {
+               local lanaddr lanaddr6
+               local ulaprefix="$(uci_get network @globals[0] ula_prefix)"
                local hostname="$(uci_get system @system[0] hostname OpenWrt)"
-               dhcp_domain_add "" "$hostname" "$lanaddr"
+
+               network_get_ipaddr lanaddr "lan" && {
+                       dhcp_domain_add "" "$hostname" "$lanaddr"
+               }
+
+               network_get_ipaddrs6 lanaddr6 "lan" && {
+                       for lanaddr6 in $lanaddr6; do
+                               case "$lanaddr6" in
+                                       "${ulaprefix%%:/*}"*)
+                                               dhcp_domain_add "" "$hostname" "${ulaprefix%%/*}1"
+                                       ;;
+                               esac
+                       done
+               }
        }
 
        echo >> $CONFIGFILE