|
|
- #!/bin/sh /etc/rc.common
-
- START=90
- STOP=10
-
- USE_PROCD=1
- PROG=/usr/sbin/udp-broadcast-relay-redux
- NAME=udp-broadcast-relay-redux
- PIDCOUNT=0
-
- validate_section_udp_broadcast_relay_redux()
- {
- uci_validate_section udp_broadcast_relay_redux udp_broadcast_relay_redux "${1}" \
- 'id:uinteger' \
- 'port:port' \
- 'network:list(string)' \
- 'src_override:ip4addr' \
- 'dest_override:ip4addr'
-
- [ -z "$id" ] && return 1
-
- [ -z "$network" ] && return 1
-
- [ -z "$port" ] && return 1
-
- return 0
- }
-
- udp_broadcast_relay_redux_instance() {
- local net network ifname id port src_override dest_override
-
- validate_section_udp_broadcast_relay_redux "${1}" || {
- echo "Validation failed"
- return 1
- }
-
- PIDCOUNT="$((PIDCOUNT + 1))"
-
- procd_open_instance
- procd_set_param command "$PROG" "--id" "${id}" "--port" "${port}"
-
- for net in $network; do
- network_get_device ifname "$net"
- if [ -z "$ifname" ]; then
- network_get_physdev ifname "$net"
- fi
- if [ -n "$ifname" ]; then
- procd_append_param command "--dev" "$ifname"
- procd_append_param netdev "$ifname"
- fi
- done
-
- if [ -n "$src_override" ] ; then
- procd_append_param command "-s" "$src_override"
- fi
-
- if [ -n "$dest_override" ] ; then
- procd_append_param command "-t" "$dest_override"
- fi
-
- procd_add_jail ubr-${PIDCOUNT}
- procd_close_instance
- }
-
- start_service() {
- . /lib/functions.sh
- . /lib/functions/network.sh
-
- config_load udp_broadcast_relay_redux
- config_foreach udp_broadcast_relay_redux_instance udp_broadcast_relay_redux
- }
-
- service_triggers() {
- procd_add_reload_trigger "udp_broadcast_relay_redux"
- procd_add_validation validate_section_udp_broadcast_relay_redux
- }
|