diff options
author | Felix Fietkau <nbd@openwrt.org> | 2015-11-03 11:59:09 +0000 |
---|---|---|
committer | Felix Fietkau <nbd@openwrt.org> | 2015-11-03 11:59:09 +0000 |
commit | b1225f12e02ece8451faf13f7d665400eb9d4dc1 (patch) | |
tree | 69d7482c149319ec852885ad23eb319d62f08a10 /package | |
parent | b0f20ce986ea8686541952ff2134277aa8fa0927 (diff) | |
download | master-187ad058-b1225f12e02ece8451faf13f7d665400eb9d4dc1.tar.gz master-187ad058-b1225f12e02ece8451faf13f7d665400eb9d4dc1.tar.bz2 master-187ad058-b1225f12e02ece8451faf13f7d665400eb9d4dc1.zip |
lldpd: implement a reload hook
Seems the default one is not working as expected.
The way that reload should work is that the 'start' service
call should return 1 (if lldpd is running) and then a normal
restart would be called.
However, for lldpd a reload would mean just clearing all custom TLVs
(if they're configured) and reloading the configuration.
So, this patch adds a reload hook, which would:
- 'start' lldpd if it's not running (because we return 1 if not running)
- reload configuration if it is running (also previously
clearing custom TLVs if present)
Signed-off-by: Alexandru Ardelean <ardeleanalex@gmail.com>
git-svn-id: svn://svn.openwrt.org/openwrt/trunk@47367 3c298f89-4303-0410-b956-a3cf2f4a3e73
Diffstat (limited to 'package')
-rw-r--r-- | package/network/services/lldpd/files/lldpd.init | 19 |
1 files changed, 18 insertions, 1 deletions
diff --git a/package/network/services/lldpd/files/lldpd.init b/package/network/services/lldpd/files/lldpd.init index 3d7d8b93d3..04e5b8ca63 100644 --- a/package/network/services/lldpd/files/lldpd.init +++ b/package/network/services/lldpd/files/lldpd.init @@ -4,6 +4,8 @@ START=90 USE_PROCD=1 +LLDPCLI=/usr/sbin/lldpcli +LLDPSOCKET=/var/run/lldpd.socket find_release_info() { @@ -71,6 +73,21 @@ start_service() { procd_close_instance } +service_running() { + pgrep -x /usr/sbin/lldpd &> /dev/null +} + +reload_service() { + running || return 1 + # Custom TLVs are special and should be + # reloaded from config during lldpd reload + $LLDPCLI -u $LLDPSOCKET unconfigure lldp custom-tlv &> /dev/null + $LLDPCLI -u $LLDPSOCKET -c /etc/lldpd.conf -c /etc/lldpd.d &> /dev/null + # Broadcast update over the wire + $LLDPCLI -u $LLDPSOCKET update &> /dev/null + return 0 +} + stop_service() { - rm -f /var/run/lldpd.socket /var/run/lldpd.pid + rm -rf /var/run/lldp $LLDPSOCKET } |