dnsmasq: enable pxe-prompt, pxe-service config options
[openwrt.git] / package / network / services / dnsmasq / files / dnsmasq.init
index 942acd7..a0197ef 100644 (file)
@@ -85,6 +85,10 @@ append_address() {
        xappend "--address=$1"
 }
 
+append_ipset() {
+       xappend "--ipset=$1"
+}
+
 append_interface() {
        local ifname=$(uci_get_state network "$1" ifname "$1")
        xappend "--interface=$ifname"
@@ -103,6 +107,10 @@ append_bogusnxdomain() {
        xappend "--bogus-nxdomain=$1"
 }
 
+append_pxe_service() {
+       xappend "--pxe-service=$1"
+}
+
 dnsmasq() {
        local cfg="$1"
        append_bool "$cfg" authoritative "--dhcp-authoritative"
@@ -123,6 +131,8 @@ dnsmasq() {
        append_bool "$cfg" nonwildcard "--bind-interfaces"
        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_parm "$cfg" dhcpscript "--dhcp-script"
        append_parm "$cfg" cachesize "--cache-size"
@@ -135,6 +145,7 @@ dnsmasq() {
        append_parm "$cfg" "local" "--server"
        config_list_foreach "$cfg" "server" append_server
        config_list_foreach "$cfg" "address" append_address
+       config_list_foreach "$cfg" "ipset" append_ipset
        config_list_foreach "$cfg" "interface" append_interface
        config_list_foreach "$cfg" "notinterface" append_notinterface
        config_list_foreach "$cfg" "addnhosts" append_addnhosts
@@ -144,7 +155,8 @@ dnsmasq() {
        append_parm "$cfg" "tftp_root" "--tftp-root"
        append_parm "$cfg" "dhcp_boot" "--dhcp-boot"
        append_parm "$cfg" "local_ttl" "--local-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 ADD_LOCAL_DOMAIN "$cfg" add_local_domain 1
@@ -357,12 +369,11 @@ dhcp_boot_add() {
        [ -n "$filename" ] || return 0
 
        config_get servername "$cfg" servername
-       [ -n "$servername" ] || return 0
-
        config_get serveraddress "$cfg" serveraddress
-       [ -n "$serveraddress" ] || return 0
 
-       xappend "--dhcp-boot=${networkid:+net:$networkid,}$filename,$servername,$serveraddress"
+       [ -n "$serveraddress" -a ! -n "$servername" ] && return 0
+
+       xappend "--dhcp-boot=${networkid:+net:$networkid,}${filename}${servername:+,$servername}${serveraddress:+,$serveraddress}"
 
        config_get_bool force "$cfg" force 0