c9983ae9cc64ab6a5b365c989ac19b9336f540bb
[openwrt/openwrt.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 get_defaults() {
10 cfg="$1"
11
12 config_get blacklist "$cfg" blacklist
13 json_add_array blacklist
14 for i in $blacklist; do
15 json_add_string "" "$i"
16 done
17 json_close_array
18
19 config_get_bool bridge_local "$cfg" bridge_local 0
20 json_add_boolean bridge_local "$bridge_local"
21 }
22
23 reload_service() {
24 config_load bridger
25
26 json_init
27 config_foreach get_defaults defaults
28
29 ubus call bridger set_config "$(json_dump)"
30 }
31
32 service_triggers() {
33 procd_add_reload_trigger bridger
34 }
35
36 start_service() {
37 procd_open_instance
38 procd_set_param command "$PROG"
39 procd_set_param respawn
40 procd_close_instance
41 }
42
43 service_started() {
44 ubus -t 10 wait_for bridger
45 [ $? = 0 ] && reload_service
46 }