}
append_interface() {
- local ifname=$(uci_get_state network "$1" ifname "$1")
+ network_get_device ifname "$1" || return
xappend "--interface=$ifname"
}
append_notinterface() {
- local ifname=$(uci_get_state network "$1" ifname "$1")
+ network_get_device ifname "$1" || return
xappend "--except-interface=$ifname"
}
dhcp_option_add "$cfg" "$networkid" "$force"
}
+dhcp_match_add() {
+ local cfg="$1"
+
+ config_get networkid "$cfg" networkid
+ [ -n "$networkid" ] || return 0
+
+ config_get match "$cfg" match
+ [ -n "$match" ] || return 0
+
+ xappend "--dhcp-match=$networkid,$match"
+
+ config_get_bool force "$cfg" force 0
+
+ dhcp_option_add "$cfg" "$networkid" "$force"
+}
+
dhcp_host_add() {
local cfg="$1"
mkdir -p $(dirname $CONFIGFILE)
mkdir -p /var/lib/misc
touch /tmp/dhcp.leases
+ chown dnsmasq:dnsmasq /var/run/dnsmasq
[ -f "$TIMESTAMPFILE" ] && rm -f "$TIMESTAMPFILE"
config_foreach dhcp_circuitid_add circuitid
config_foreach dhcp_remoteid_add remoteid
config_foreach dhcp_subscrid_add subscrid
+ config_foreach dhcp_match_add match
config_foreach dhcp_domain_add domain
config_foreach dhcp_hostrecord_add hostrecord
config_foreach dhcp_relay_add relay