lldpd: move /var/run creation + chmod earlier
[openwrt/staging/mkresin.git] / package / network / services / lldpd / files / lldpd.init
index b2eea70fd3577ccce092a7df24b929bf281a726c..bd957b672bfc6b0d985d44ffbb7582c8ad5f972b 100644 (file)
@@ -24,6 +24,7 @@ start() {
        local lldp_class
        local lldp_location
        local lldp_description
+       local readonly_mode
 
        config_load 'lldpd'
        config_get_bool enable_cdp 'config' 'enable_cdp' 0
@@ -33,34 +34,32 @@ start() {
        config_get lldp_class 'config' 'lldp_class'
        config_get lldp_location 'config' 'lldp_location'
        config_get lldp_description 'config' 'lldp_description' "$(find_release_info)"
+       config_get_bool readonly_mode 'config' 'readonly_mode' 0
 
        local ifaces
        config_get ifaces 'config' 'interface'
 
-       local iface
+       local iface ifnames=""
        for iface in $ifaces; do
                local ifname=""
                if network_get_device ifname "$iface" || [ -e "/sys/class/net/$iface" ]; then
-                       append args "-I ${ifname:-$iface}"
+                       append ifnames "${ifname:-$iface}" ","
                fi
        done
 
+       mkdir -p /var/run/lldp
+       chown lldp:lldp /var/run/lldp
+
+       [ -n "$ifnames" ] && append args "-I $ifnames"
        [ $enable_cdp -gt 0 ] && append args '-c'
        [ $enable_fdp -gt 0 ] && append args '-f'
        [ $enable_sonmp -gt 0 ] && append args '-s'
        [ $enable_edp -gt 0 ] && append args '-e'
-
-       mkdir -p /var/run/lldp
-       chown lldp:lldp /var/run/lldp
+       [ $readonly_mode -gt 0 ] && append args '-r'
 
        service_start /usr/sbin/lldpd $args \
                ${lldp_class:+ -M $lldp_class} \
                ${lldp_description:+ -S "$lldp_description"}
-
-       [ -n "$lldp_location" ] && {
-               sleep 1
-               /usr/sbin/lldpctl -L "$lldp_location" > /dev/null 2>&1
-       }
 }
 
 stop() {