package/blockmount: simplify extroot module loading logic
[openwrt.git] / package / dnsmasq / files / dnsmasq.init
index cd5a78a..3d9060d 100644 (file)
@@ -206,20 +206,19 @@ dhcp_vendorclass_add() {
 dhcp_host_add() {
        local cfg="$1"
 
-       config_get name "$cfg" name
-
        config_get networkid "$cfg" networkid
        [ -n "$networkid" ] && dhcp_option_add "$cfg" "$networkid"
 
+       config_get name "$cfg" name
        config_get ip "$cfg" ip
-       [ -n "$ip" ] || return 0
+       [ -n "$ip" ] || [ -n "$name" ] || return 0
 
        macs=""
        config_get mac "$cfg" mac
        for m in $mac; do append macs "$m" ","; done
        [ -n "$macs" ] || return 0
 
-       append args "--dhcp-host=$macs,${networkid:+net:$networkid,}$ip${name:+,$name}"
+       append args "--dhcp-host=$macs${networkid:+,net:$networkid}${ip:+,$ip}${name:+,$name}"
 }
 
 dhcp_mac_add() {
@@ -365,6 +364,19 @@ dhcp_srv_add() {
        append args "-W $service"
 }
 
+dhcp_cname_add() {
+       local cfg="$1"
+       local cname target
+
+       config_get cname "$cfg" cname
+       [ -n "$cname" ] || return 0
+
+       config_get target "$cfg" target
+       [ -n "$target" ] || return 0
+
+       append args "--cname=${cname},${target}"
+}
+
 start() {
        include /lib/network
        scan_interfaces
@@ -383,6 +395,7 @@ start() {
        config_foreach dhcp_domain_add domain
        config_foreach dhcp_srv_add srvhost
        config_foreach dhcp_add dhcp
+       config_foreach dhcp_cname_add cname
 
        /usr/sbin/dnsmasq $args && {
                rm -f /tmp/resolv.conf
This page took 0.027334 seconds and 4 git commands to generate.