Branch oldpackages for 14.07
[14.07/packages.git] / net / rarpd / files / rarpd.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (C) 2006-2012 OpenWrt.org
3
4 START=50
5
6 SERVICE_DAEMONIZE=1
7 SERVICE_WRITE_PID=1
8
9 append_bool() {
10         local var="$1"
11         local section="$2"
12         local option="$3"
13         local value="$4"
14         local _val
15         config_get_bool _val "$section" "$option" 0
16         [ $_val -gt 0 ] && append "$var" "$value"
17 }
18
19 append_string() {
20         local var="$1"
21         local section="$2"
22         local option="$3"
23         local val="$4"
24         local _val
25         config_get _val "$section" "$option"
26         [ -n "$_val" ] && append "$var" "$val $_val"
27 }
28
29 section_enabled() {
30         local enabled
31         config_get_bool enabled "$1" 'enabled' 0
32         [ $enabled -gt 0 ]
33 }
34
35 start_instance() {
36         local section="$1"
37         local if
38         local dev
39         local args
40
41         section_enabled "$section" || return 1
42
43         config_get if "$section" 'interface' 'lan'
44         network_get_device dev "$if" && {
45                 args="-n -i $if"
46                 append_string args "$section" 'ethers' '-e'
47                 append_bool args "$section" 'verbose' '-v'
48
49                 SERVICE_PID_FILE="/var/run/rarpd-${if}.pid"
50                 service_start /usr/sbin/rarpd $args
51         }
52 }
53
54 stop_instance() {
55         local section="$1"
56         local id
57         local if
58         local dev
59
60         section_enabled "$section" || return 1
61
62         config_get if "$section" 'interface' 'lan'
63         network_get_device dev "$if"
64
65         SERVICE_PID_FILE="/var/run/rarpd-${if}.pid"
66         service_stop /usr/sbin/rarpd
67 }
68
69 start() {
70         . /lib/functions/network.sh
71         config_load 'rarpd'
72         config_foreach start_instance 'rarpd'
73 }
74
75 stop() {
76         . /lib/functions/network.sh
77         config_load 'rarpd'
78         config_foreach stop_instance 'rarpd'
79 }