dnsmasq_start()
{
- local cfg="$1" disabled resolvfile user_dhcpscript
+ local cfg="$1"
+ local disabled user_dhcpscript
+ local resolvfile localuse=0
config_get_bool disabled "$cfg" disabled 0
[ "$disabled" -gt 0 ] && return 0
append_bool "$cfg" sequential_ip "--dhcp-sequential-ip"
append_bool "$cfg" allservers "--all-servers"
append_bool "$cfg" noping "--no-ping"
+ append_bool "$cfg" rapidcommit "--dhcp-rapid-commit"
append_parm "$cfg" logfacility "--log-facility"
append_parm "$cfg" "tftp_root" "--tftp-root"
append_parm "$cfg" "dhcp_boot" "--dhcp-boot"
append_parm "$cfg" "local_ttl" "--local-ttl"
+ append_parm "$cfg" "max_ttl" "--max-ttl"
+ append_parm "$cfg" "min_cache_ttl" "--min-cache-ttl"
+ append_parm "$cfg" "max_cache_ttl" "--max-cache-ttl"
append_parm "$cfg" "pxe_prompt" "--pxe-prompt"
config_list_foreach "$cfg" "pxe_service" append_pxe_service
config_get DOMAIN "$cfg" domain
config_get_bool noresolv "$cfg" noresolv 0
if [ "$noresolv" != "1" ]; then
- config_get resolvfile "$cfg" resolvfile "/tmp/resolv.conf.auto"
- # So jail doesn't complain if file missing
- [ -n "$resolvfile" -a \! -e "$resolvfile" ] && touch "$resolvfile"
+ config_get resolvfile "$cfg" resolvfile /tmp/resolv.conf.auto
+ [ -n "$resolvfile" -a ! -e "$resolvfile" ] && touch "$resolvfile"
+ xappend "--resolv-file=$resolvfile"
+ [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && localuse=1
fi
-
- [ -n "$resolvfile" ] && xappend "--resolv-file=$resolvfile"
+ config_get_bool localuse "$cfg" localuse "$localuse"
config_get hostsfile "$cfg" dhcphostsfile
[ -e "$hostsfile" ] && xappend "--dhcp-hostsfile=$hostsfile"
mv -f $CONFIGFILE_TMP $CONFIGFILE
mv -f $HOSTFILE_TMP $HOSTFILE
- [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
+ [ "$localuse" -gt 0 ] && {
rm -f /tmp/resolv.conf
[ $ADD_LOCAL_DOMAIN -eq 1 ] && [ -n "$DOMAIN" ] && {
echo "search $DOMAIN" >> /tmp/resolv.conf
dnsmasq_stop()
{
- local cfg="$1" resolvfile
+ local cfg="$1"
+ local noresolv resolvfile localuse=0
+ config_get_bool noresolv "$cfg" noresolv 0
config_get resolvfile "$cfg" "resolvfile"
- #relink /tmp/resolve.conf only for main instance
- [ "$resolvfile" = "/tmp/resolv.conf.auto" ] && {
- [ -f /tmp/resolv.conf ] && {
- rm -f /tmp/resolv.conf
- ln -s "$resolvfile" /tmp/resolv.conf
- }
- }
+ [ "$noresolv" = 0 -a "$resolvfile" = "/tmp/resolv.conf.auto" ] && localuse=1
+ config_get_bool localuse "$cfg" localuse "$localuse"
+ [ "$localuse" -gt 0 ] && ln -sf "/tmp/resolv.conf.auto" /tmp/resolv.conf
rm -f ${BASEDHCPSTAMPFILE}.${cfg}.*.dhcp
}