dnsmasq: don't use network functions at boottime (FS#1542)
[openwrt/openwrt.git] / package / network / services / dnsmasq / files / dnsmasq.init
index 4906df9ce432781b930a735cd3ad4cad7748c0a8..c1ae0934fd2c466687c80f7ae7f6fa567e4474fa 100644 (file)
@@ -844,8 +844,10 @@ dnsmasq_start()
        config_list_foreach "$cfg" "rev_server" append_rev_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
+       [ -n "$BOOT" ] || {
+               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" "bogusnxdomain" append_bogusnxdomain
        append_parm "$cfg" "leasefile" "--dhcp-leasefile" "/tmp/dhcp.leases"
@@ -967,7 +969,7 @@ dnsmasq_start()
        config_foreach filter_dnsmasq match dhcp_match_add "$cfg"
        config_foreach filter_dnsmasq domain dhcp_domain_add "$cfg"
        config_foreach filter_dnsmasq hostrecord dhcp_hostrecord_add "$cfg"
-       config_foreach filter_dnsmasq relay dhcp_relay_add "$cfg"
+       [ -n "$BOOT" ] || config_foreach filter_dnsmasq relay dhcp_relay_add "$cfg"
 
        echo >> $CONFIGFILE_TMP
        config_foreach filter_dnsmasq srvhost dhcp_srv_add "$cfg"
@@ -984,13 +986,13 @@ dnsmasq_start()
                # Enable RA feature for when/if it is constructed,
                # and RA is selected per interface pool (RA, DHCP, or both),
                # but no one (should) want RA broadcast in syslog
-               config_foreach filter_dnsmasq dhcp dhcp_add "$cfg"
+               [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg"
                xappend "--enable-ra"
                xappend "--quiet-ra"
                append_bool "$cfg" quietdhcp "--quiet-dhcp6"
 
        elif [ "$DNSMASQ_DHCP_VER" -gt 0 ] ; then
-               config_foreach filter_dnsmasq dhcp dhcp_add "$cfg"
+               [ -n "$BOOT" ] || config_foreach filter_dnsmasq dhcp dhcp_add "$cfg"
        fi
 
 
@@ -1059,6 +1061,7 @@ service_triggers()
 
        config_load dhcp
        config_foreach add_interface_trigger dhcp
+       config_foreach add_interface_trigger relay
 }
 
 boot()
@@ -1071,8 +1074,6 @@ start_service() {
        local instance="$1"
        local instance_found=0
 
-       [ -n "$BOOT" ] && return
-
        . /lib/functions/network.sh
 
        config_cb() {