dnsmasq: use hostsdir instead of addn-hosts
authorKevin Darbyshire-Bryant <[email protected]>
Fri, 10 May 2019 19:14:59 +0000 (20:14 +0100)
committerKevin Darbyshire-Bryant <[email protected]>
Fri, 5 Dec 2025 17:40:48 +0000 (17:40 +0000)
dnsmasq will dynamically scan changes/additions to hosts in hostsdir whereas
addn-hosts needs a SIGHUP.

While here, tell the init script to use a hidden file whilst it builds
the hosts files so dnsmasq isn't constantly refreshing during startup.

Signed-off-by: Kevin Darbyshire-Bryant <[email protected]>
package/network/services/dnsmasq/files/dnsmasq.init

index 916480f6304095fde3c061d9dfb34f2bd15ee79f..53c4ee9bce2b6b36fb63a5790f30153d52376bfb 100755 (executable)
@@ -909,8 +909,9 @@ dnsmasq_start()
        CONFIGFILE="${BASECONFIGFILE}.${cfg}"
        CONFIGFILE_TMP="${CONFIGFILE}.$$"
        HOSTFILE="${BASEHOSTFILE}.${cfg}"
-       HOSTFILE_TMP="${HOSTFILE}.$$"
-       HOSTFILE_DIR="$(dirname "$HOSTFILE")"
+       HOSTFILE_NAME="$(basename ${HOSTFILE})"
+       HOSTFILE_DIR="$(dirname ${HOSTFILE})"
+       HOSTFILE_TMP="${HOSTFILE_DIR}.${HOSTFILE_NAME}.$$"
        BASEDHCPSTAMPFILE_CFG="${BASEDHCPSTAMPFILE}.${cfg}"
 
        # before we can call xappend
@@ -1050,8 +1051,8 @@ dnsmasq_start()
                xappend "--addn-hosts=$HOSTFILE"
                append EXTRA_MOUNT "$HOSTFILE"
        else
-               xappend "--addn-hosts=$HOSTFILE_DIR"
-               append EXTRA_MOUNT "$HOSTFILE_DIR"
+               xappend "--hostsdir=$(dirname $HOSTFILE)"
+               append EXTRA_MOUNT "$(dirname $HOSTFILE)"
        fi
        config_list_foreach "$cfg" "addnhosts" append_addnhosts
        config_list_foreach "$cfg" "bogusnxdomain" append_bogusnxdomain