The option 'force' when set to '1' will transform a dhcp-option to 
dhcp-option-force instead in the config.

This is useful for forcing options to be sent back to a client (even options it 
didn't ask for).

Signed-off-by: Philip Prindeville <phil...@redfish-solutions.com>
--- trunk/package/dnsmasq/files/dnsmasq.init    2012-05-06 12:44:58.000000000 
-0600
+++ trunk/package/dnsmasq/files/dnsmasq.init    2012-05-06 12:54:53.868880051 
-0600
@@ -157,7 +157,9 @@
 
        xappend "--dhcp-subscrid=$networkid,$subscriberid"
 
-       dhcp_option_add "$cfg" "$networkid"
+       config_get_bool force "$cfg" force 0
+
+       dhcp_option_add "$cfg" "$networkid" "$force"
 }
 
 dhcp_remoteid_add() {
@@ -171,7 +173,9 @@
 
        xappend "--dhcp-remoteid=$networkid,$remoteid"
 
-       dhcp_option_add "$cfg" "$networkid"
+       config_get_bool force "$cfg" force 0
+
+       dhcp_option_add "$cfg" "$networkid" "$force"
 }
 
 dhcp_circuitid_add() {
@@ -185,7 +189,9 @@
 
        xappend "--dhcp-circuitid=$networkid,$circuitid"
 
-       dhcp_option_add "$cfg" "$networkid"
+       config_get_bool force "$cfg" force 0
+
+       dhcp_option_add "$cfg" "$networkid" "$force"
 }
 
 dhcp_userclass_add() {
@@ -199,7 +205,9 @@
 
        xappend "--dhcp-userclass=$networkid,$userclass"
 
-       dhcp_option_add "$cfg" "$networkid"
+       config_get_bool force "$cfg" force 0
+
+       dhcp_option_add "$cfg" "$networkid" "$force"
 }
 
 dhcp_vendorclass_add() {
@@ -213,14 +221,18 @@
 
        xappend "--dhcp-vendorclass=$networkid,$vendorclass"
 
-       dhcp_option_add "$cfg" "$networkid"
+       config_get_bool force "$cfg" force 0
+
+       dhcp_option_add "$cfg" "$networkid" "$force"
 }
 
 dhcp_host_add() {
        local cfg="$1"
 
+       config_get_bool force "$cfg" force 0
+
        config_get networkid "$cfg" networkid
-       [ -n "$networkid" ] && dhcp_option_add "$cfg" "$networkid"
+       [ -n "$networkid" ] && dhcp_option_add "$cfg" "$networkid" "$force"
 
        config_get name "$cfg" name
        config_get ip "$cfg" ip
@@ -282,7 +294,9 @@
 
        xappend 
"--dhcp-boot=${networkid:+net:$networkid,}$filename,$servername,$serveraddress"
 
-       dhcp_option_add "$cfg" "$networkid"
+       config_get_bool force "$cfg" force 0
+
+       dhcp_option_add "$cfg" "$networkid" "$force"
 }
 
 
@@ -342,10 +356,13 @@
 dhcp_option_add() {
        local cfg="$1"
        local networkid="$2"
+       local force="$3"
+
+       [ "$force" = "0" ] && force=
 
        config_get dhcp_option "$cfg" dhcp_option
        for o in $dhcp_option; do
-               xappend "--dhcp-option=$networkid","$o"
+               xappend "--dhcp-option${force:+-force}=$networkid","$o"
        done
 
 }
_______________________________________________
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to