lldpd: bump to v0.6.1, enable privilege separation and chrooting
[openwrt.git] / package / network / services / lldpd / files / lldpd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2008-2012 OpenWrt.org
3
4 START=90
5
6 SERVICE_USE_PID=1
7
8 start() {
9         local enable_cdp
10         local enable_fdp
11         local enable_sonmp
12         local enable_edp
13         local lldp_class
14         local lldp_location
15
16         config_load 'lldpd'
17         config_get_bool enable_cdp 'config' 'enable_cdp' 0
18         config_get_bool enable_fdp 'config' 'enable_fdp' 0
19         config_get_bool enable_sonmp 'config' 'enable_sonmp' 0
20         config_get_bool enable_edp 'config' 'enable_edp' 0
21         config_get lldp_class 'config' 'lldp_class'
22         config_get lldp_location 'config' 'lldp_location'
23
24         [ $enable_cdp -gt 0 ] && append args '-c'
25         [ $enable_fdp -gt 0 ] && append args '-f'
26         [ $enable_sonmp -gt 0 ] && append args '-s'
27         [ $enable_edp -gt 0 ] && append args '-e'
28
29         user_exists  lldp 121 || user_add  lldp 121 129
30         group_exists lldp 129 || group_add lldp 129
31
32         mkdir -p /var/run/lldp
33         chown lldp:lldp /var/run/lldp
34
35         service_start /usr/sbin/lldpd $args \
36                 ${lldp_class:+ -M $lldp_class}
37
38         [ -n "$lldp_location" ] && {
39                 sleep 1
40                 /usr/sbin/lldpctl -L "$lldp_location" > /dev/null 2>&1
41         }
42 }
43
44 stop() {
45         service_stop /usr/sbin/lldpd
46         rm -f /var/run/lldpd.socket /var/run/lldpd.pid
47 }