xappend "--address=$1"
}
+append_ipset() {
+ xappend "--ipset=$1"
+}
+
append_interface() {
local ifname=$(uci_get_state network "$1" ifname "$1")
xappend "--interface=$ifname"
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
config_list_foreach "$cfg" rebind_domain append_rebind_domain
}
- config_get dnssec "$cfg" dnssec
+ config_get_bool dnssec "$cfg" dnssec 0
[ "$dnssec" -gt 0 ] && {
xappend "--conf-file=$TRUSTANCHORSFILE"
xappend "--dnssec"
config_get ip "$cfg" ip
[ -n "$ip" -o -n "$name" ] || return 0
+ config_get_bool dns "$cfg" dns 0
+ [ "$dns" = "1" -a -n "$ip" -a -n "$name" ] && {
+ echo "$ip $name${DOMAIN:+.$DOMAIN}" >> $HOSTFILE
+ }
+
config_get mac "$cfg" mac
- [ -z "$mac" ] && {
+ if [ -n "$mac" ]; then
+ # --dhcp-host=00:20:e0:3b:13:af,192.168.0.199,lap
+ macs=""
+ for m in $mac; do append macs "$m" ","; done
+ else
+ # --dhcp-host=lap,192.168.0.199
[ -n "$name" ] || return 0
- mac="$name"
+ macs="$name"
name=""
- }
-
- macs=""
- for m in $mac; do append macs "$m" ","; done
+ fi
config_get tag "$cfg" tag
[ "$broadcast" = "0" ] && broadcast=
xappend "--dhcp-host=$macs${networkid:+,net:$networkid}${broadcast:+,set:needs-broadcast}${tag:+,set:$tag}${ip:+,$ip}${name:+,$name}"
-
- config_get_bool dns "$cfg" dns 0
- [ "$dns" = "1" ] && {
- echo "$ip $name${DOMAIN:+.$DOMAIN}" >> $HOSTFILE
- }
}
dhcp_tag_add() {
config_get net "$cfg" interface
[ -n "$net" ] || return 0
+ config_get dhcpv4 "$cfg" dhcpv4
+ [ "$dhcpv4" != "disabled" ] || return 0
+
config_get networkid "$cfg" networkid
[ -n "$networkid" ] || networkid="$net"
[ -n "$ip" ] || return 0
for name in $names; do
- [ "${name%.*}" == "$name" ] && \
- name="$name${DOMAIN:+.$DOMAIN}"
-
- record="${record:+$record/}$name"
+ record="${record:+$record }$name"
done
- xappend "--address=/$record/$ip"
+ echo "$ip $record" >> $HOSTFILE
}
dhcp_srv_add() {
local lanaddr
[ $ADD_LOCAL_HOSTNAME -eq 1 ] && network_get_ipaddr lanaddr "lan" && {
local hostname="$(uci_get system @system[0] hostname OpenWrt)"
- dhcp_hostrecord_add "" "${hostname%.$DOMAIN}${DOMAIN:+.$DOMAIN ${hostname%.$DOMAIN}}" "$lanaddr"
+ dhcp_domain_add "" "$hostname" "$lanaddr"
}
echo >> $CONFIGFILE