- append_bool "$cfg" dbus "-l"
-
- config_get dnsforwardmax "$cfg" dnsforwardmax
- dnsforwardmax="${dnsforwardmax:-150}"
- append args "-0 $dnsforwardmax"
-
- config_get port "$cfg" port
- port="${port:-53}"
- append args "-p $port"
-
- config_get ednspacket_max "$cfg" ednspacket_max
- ednspacket_max="${ednspacket_max:-1280}"
- append args "-P $ednspacket_max"
-
- config_get dhcpleasemax "$cfg" dhcpleasemax
- dhcpleasemax="${dhcpleasemax:-150}"
- append args "-X $dhcpleasemax"
-
- config_get addnhosts "$cfg" addnhosts
- config_get interface "$cfg" interface
- config_get exceptinterface "$cfg" exceptinterface
- config_get queryport "$cfg" queryport
- config_get domain "$cfg" domain
+ append_bool "$cfg" dbus "-1"
+ append_bool "$cfg" boguspriv "-b"
+ append_bool "$cfg" expandhosts "-E"
+ append_bool "$cfg" enable_tftp "--enable-tftp"
+ append_bool "$cfg" nonwildcard "-z"
+
+ append_parm "$cfg" dhcpscript "-6"
+ append_parm "$cfg" cachesize "-c"
+ append_parm "$cfg" dnsforwardmax "-0"
+ append_parm "$cfg" port "-p"
+ append_parm "$cfg" ednspacket_max "-P"
+ append_parm "$cfg" dhcpleasemax "-X"
+ append_parm "$cfg" "queryport" "-Q"
+ append_parm "$cfg" "domain" "-s"
+ append_parm "$cfg" "local" "-S"
+ config_list_foreach "$cfg" "server" append_server
+ config_list_foreach "$cfg" "interface" append_interface
+ config_list_foreach "$cfg" "notinterface" append_notinterface
+ config_list_foreach "$cfg" "addnhosts" append_addnhosts
+ config_list_foreach "$cfg" "bogusnxdomain" append_bogusnxdomain
+ append_parm "$cfg" "leasefile" "-l"
+ append_parm "$cfg" "resolvfile" "-r"
+ append_parm "$cfg" "tftp_root" "--tftp-root"
+ append_parm "$cfg" "dhcp_boot" "--dhcp-boot"
+
+ config_get DOMAIN "$cfg" domain
+
+ config_get_bool readethers "$cfg" readethers
+ [ "$readethers" = "1" -a \! -e "/etc/ethers" ] && touch /etc/ethers
+
+ config_get leasefile $cfg leasefile
+ [ -n "$leasefile" -a \! -e "$leasefile" ] && touch "$leasefile"
+ config_get_bool cachelocal "$cfg" cachelocal 1
+
+ config_get hostsfile "$cfg" dhcphostsfile
+ [ -e "$hostsfile" ] && append args "--dhcp-hostsfile=$hostsfile"
+
+ local rebind
+ config_get_bool rebind "$cfg" rebind_protection 1
+ [ $rebind -gt 0 ] && {
+ logger -t dnsmasq \
+ "DNS rebinding protection is active," \
+ "will discard upstream RFC1918 responses!"
+ append args "--stop-dns-rebind"
+
+ local rebind_localhost
+ config_get_bool rebind_localhost "$cfg" rebind_localhost 0
+ [ $rebind_localhost -gt 0 ] && {
+ logger -t dnsmasq "Allowing 127.0.0.0/8 responses"
+ append args "--rebind-localhost-ok"
+ }
+
+ append_rebind_domain() {
+ logger -t dnsmasq "Allowing RFC1918 responses for domain $1"
+ append args "--rebind-domain-ok=$1"
+ }
+
+ config_list_foreach "$cfg" rebind_domain append_rebind_domain
+ }