Merge pull request #15466 from cotequeiroz/mutt
[feed/packages.git] / net / udp-broadcast-relay-redux-openwrt / files / udp-broadcast-relay-redux.init
1 #!/bin/sh /etc/rc.common
2
3 START=90
4 STOP=10
5
6 USE_PROCD=1
7 PROG=/usr/sbin/udp-broadcast-relay-redux
8 NAME=udp-broadcast-relay-redux
9 PIDCOUNT=0
10
11 validate_section_udp_broadcast_relay_redux()
12 {
13 uci_validate_section udp_broadcast_relay_redux udp_broadcast_relay_redux "${1}" \
14 'id:uinteger' \
15 'port:port' \
16 'network:list(string)' \
17 'src_override:ip4addr' \
18 'dest_override:ip4addr'
19
20 [ -z "$id" ] && return 1
21
22 [ -z "$network" ] && return 1
23
24 [ -z "$port" ] && return 1
25
26 return 0
27 }
28
29 udp_broadcast_relay_redux_instance() {
30 local net network ifname id port src_override dest_override
31
32 validate_section_udp_broadcast_relay_redux "${1}" || {
33 echo "Validation failed"
34 return 1
35 }
36
37 PIDCOUNT="$((PIDCOUNT + 1))"
38
39 procd_open_instance
40 procd_set_param command "$PROG" "--id" "${id}" "--port" "${port}"
41
42 for net in $network; do
43 network_get_device ifname "$net"
44 if [ -z "$ifname" ]; then
45 network_get_physdev ifname "$net"
46 fi
47 if [ -n "$ifname" ]; then
48 procd_append_param command "--dev" "$ifname"
49 procd_append_param netdev "$ifname"
50 fi
51 done
52
53 if [ -n "$src_override" ] ; then
54 procd_append_param command "-s" "$src_override"
55 fi
56
57 if [ -n "$dest_override" ] ; then
58 procd_append_param command "-t" "$dest_override"
59 fi
60
61 procd_add_jail ubr-${PIDCOUNT}
62 procd_close_instance
63 }
64
65 start_service() {
66 . /lib/functions.sh
67 . /lib/functions/network.sh
68
69 config_load udp_broadcast_relay_redux
70 config_foreach udp_broadcast_relay_redux_instance udp_broadcast_relay_redux
71 }
72
73 service_triggers() {
74 procd_add_reload_trigger "udp_broadcast_relay_redux"
75 procd_add_validation validate_section_udp_broadcast_relay_redux
76 }