lldpd: drop specific respawn params [use system-wide]
[openwrt/openwrt.git] / package / network / services / lldpd / files / lldpd.init
index 8fe0a47cdc02cc4a7b1ddb123fe165bd3bd57cbc..39bce989be6801ab7c014798eb6860e86743de08 100644 (file)
@@ -57,6 +57,7 @@ start_service() {
        local lldp_class
        local lldp_location
        local readonly_mode
+       local agentxsocket
 
        config_load 'lldpd'
        config_get_bool enable_cdp 'config' 'enable_cdp' 0
@@ -66,6 +67,7 @@ start_service() {
        config_get lldp_class 'config' 'lldp_class'
        config_get lldp_location 'config' 'lldp_location'
        config_get_bool readonly_mode 'config' 'readonly_mode' 0
+       config_get agentxsocket 'config' 'agentxsocket'
 
        mkdir -p /var/run/lldp
        chown lldp:lldp /var/run/lldp
@@ -83,12 +85,10 @@ start_service() {
        [ $enable_edp -gt 0 ] && procd_append_param command '-e'
        [ $readonly_mode -gt 0 ] && procd_append_param command '-r'
        [ -n "$lldp_class" ] && procd_append_param command -M "$lldp_class"
+       [ -n "$agentxsocket" ] && procd_append_param command -x -X "$agentxsocket"
 
        # set auto respawn behavior
        procd_set_param respawn
-       procd_append_param respawn 3600
-       procd_append_param respawn 5
-       procd_append_param respawn -1
        procd_close_instance
 }
 
@@ -99,6 +99,7 @@ service_running() {
 reload_service() {
        running || return 1
        $LLDPCLI -u $LLDPSOCKET &> /dev/null <<-EOF
+               pause
                unconfigure lldp custom-tlv
                unconfigure system interface pattern
                unconfigure system description
@@ -108,7 +109,10 @@ reload_service() {
        write_lldpd_conf
        $LLDPCLI -u $LLDPSOCKET -c $LLDPD_CONF -c $LLDPD_CONFS_DIR &> /dev/null
        # Broadcast update over the wire
-       $LLDPCLI -u $LLDPSOCKET update &> /dev/null
+       $LLDPCLI -u $LLDPSOCKET &> /dev/null <<-EOF
+               resume
+               update
+       EOF
        return 0
 }