2ba9f06b65e1e770cdb8c49da9579e59c9349ba3
[openwrt/staging/linusw.git] / package / network / services / bridger / files / bridger.init
1 #!/bin/sh /etc/rc.common
2 # Copyright (c) 2021 OpenWrt.org
3
4 START=19
5
6 USE_PROCD=1
7 PROG=/usr/sbin/bridger
8
9 add_blacklist() {
10 cfg="$1"
11
12 config_get blacklist "$cfg" blacklist
13 for i in $blacklist; do
14 json_add_string "" "$i"
15 done
16 }
17
18 reload_service() {
19 config_load bridger
20
21 json_init
22 json_add_string name "config"
23 json_add_array devices
24 config_foreach add_blacklist defaults
25 json_close_array
26
27 ubus call bridger set_blacklist "$(json_dump)"
28 }
29
30 service_triggers() {
31 procd_add_reload_trigger bridger
32 }
33
34 start_service() {
35 procd_open_instance
36 procd_set_param command "$PROG"
37 procd_set_param respawn
38 procd_close_instance
39 }
40
41 service_started() {
42 ubus -t 10 wait_for bridger
43 [ $? = 0 ] && reload_service
44 }