You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

76 lines
1.7 KiB

#!/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
}