config_list_foreach "$cfg" rebind_domain append_rebind_domain
}
+ dhcp_option_add "$cfg" "" 0
+
echo >> $CONFIGFILE
}
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() {
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() {
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() {
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() {
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
- [ -n "$ip" ] || [ -n "$name" ] || return 0
+ [ -n "$ip" -o -n "$name" ] || return 0
macs=""
config_get mac "$cfg" mac
for m in $mac; do append macs "$m" ","; done
[ -n "$macs" ] || return 0
- xappend "--dhcp-host=$macs${networkid:+,net:$networkid}${ip:+,$ip}${name:+,$name}"
+ config_get tag "$cfg" tag
+
+ xappend "--dhcp-host=$macs${networkid:+,net:$networkid}${tag:+,set:$tag}${ip:+,$ip}${name:+,$name}"
+}
+
+dhcp_tag_add() {
+ local cfg="$1"
+
+ tag="$cfg"
+
+ [ -n "$tag" ] || return 0
+
+ config_get_bool force "$cfg" force 0
+ [ "$force" = "0" ] && force=
+
+ config_get option "$cfg" dhcp_option
+ for o in $option; do
+ xappend "--dhcp-option${force:+-force}=tag:$tag,$o"
+ done
}
dhcp_mac_add() {
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"
}
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:+$networkid,}$o"
done
}
local service="$domain,$relay,$pref"
- append args "--mx-host=$service"
+ xappend "--mx-host=$service"
}
dhcp_cname_add() {
echo >> $CONFIGFILE
config_foreach dhcp_boot_add boot
config_foreach dhcp_mac_add mac
+ config_foreach dhcp_tag_add tag
config_foreach dhcp_vendorclass_add vendorclass
config_foreach dhcp_userclass_add userclass
config_foreach dhcp_circuitid_add circuitid