summaryrefslogtreecommitdiffstats
path: root/net/parprouted/files/parprouted.init
blob: a8a8ab781670cd2d270c8973a03e568440785436 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#!/bin/sh /etc/rc.common
# Copyright (C) 2006-2012 OpenWrt.org

START=50

section_enabled() {
	local enabled
	config_get_bool enabled "$1" 'enabled' 0
	[ $enabled -gt 0 ]
}

append_interface() {
	local name="$1"
	local device
	network_get_device device "$name"
	append args "${device:-$name}"
}

start_instance() {
	local section="$1"
	local permanent
	local interfaces
	local args=""

	section_enabled "$section" || return 1

	config_get_bool permanent "$section" 'permanent' 0
	[ $permanent -eq 0 ] || append args "-p"

	config_list_foreach "$section" 'interfaces' append_interface

	service_start /usr/sbin/parprouted $args
}

start() {
	. /lib/functions/network.sh

	config_load 'parprouted'
	config_foreach start_instance 'parprouted'
}

stop() {
	service_stop /usr/sbin/parprouted
}