X-Git-Url: http://git.openwrt.org/?p=openwrt%2Fstaging%2Flynxis%2Fomap.git;a=blobdiff_plain;f=package%2Fnetwork%2Fservices%2Fdnsmasq%2Ffiles%2Fdnsmasq.init;h=69c375c395728f8b0721fa53a38595772d61716f;hp=4047768bba14449d06f3d1dd8dbc19842141d3c8;hb=32f4777530bc814cb878c0436bc26cded53a3a8b;hpb=a1681ce39bbbab20c46150ee28b63351396662c2 diff --git a/package/network/services/dnsmasq/files/dnsmasq.init b/package/network/services/dnsmasq/files/dnsmasq.init index 4047768bba..69c375c395 100644 --- a/package/network/services/dnsmasq/files/dnsmasq.init +++ b/package/network/services/dnsmasq/files/dnsmasq.init @@ -119,12 +119,12 @@ append_ipset() { } 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" } @@ -351,6 +351,22 @@ dhcp_vendorclass_add() { 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" @@ -643,6 +659,7 @@ start_service() { mkdir -p $(dirname $CONFIGFILE) mkdir -p /var/lib/misc touch /tmp/dhcp.leases + chown dnsmasq:dnsmasq /var/run/dnsmasq [ -f "$TIMESTAMPFILE" ] && rm -f "$TIMESTAMPFILE" @@ -668,6 +685,7 @@ start_service() { 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