#!/bin/sh /etc/rc.common # Copyright (C) 2015 OpenWrt.org # Copyright (C) 2020 Nishant Sharma START=89 STOP=11 USE_PROCD=1 PROG=/usr/bin/udpspeeder validate_udpspeeder_section() { uci_validate_section udpspeeder udpspeeder "${1}" \ 'enabled:bool:0' \ 'server:bool:0' \ 'mode:integer:0' \ 'mtu:integer:1250' \ 'timeout:integer:8' \ 'local:string' \ 'remote:string' \ 'report:integer:10' \ 'disable_obscure:bool:0' \ 'interval:integer:0' \ 'fec:string:20:10' \ 'disable_fec:bool:0' \ 'sock_buf:integer:1024' \ 'log_level:integer:4' \ 'decode_buf:integer:2000' \ 'fix_latency:bool:0' \ 'queue_len:integer:200' } start_instance() { local section="$1" local server mode mtu timeout local remote report disable_obscure fifo interval fec disable_fec sock_buf queue_len \ decode_buf sock_buf log_level enabled fifo="/tmp/udpspeeder-${section}.fifo" validate_udpspeeder_section $section || { echo "validation failed" return 1 } if [ "${enabled}" -ne 1 ] then return 1 fi procd_open_instance procd_set_param respawn procd_set_param stderr 1 procd_set_param stdout 1 procd_set_param command "${PROG}" if [ "${server}" -eq 1 ] then procd_append_param command -s else procd_append_param command -c fi if [ "${disable_fec}" -eq 1 ] then procd_append_param command --disable-fec else procd_append_param command --fec "${fec}" fi if [ "${fix_latency}" -eq 1 ] && [ "${mode}" -eq 0 ] then procd_append_param command --fix-latency fi if [ "${disable_obscure}" -eq 1 ] then procd_append_param command --disable-obscure fi procd_append_param command -l "${local}" procd_append_param command -r "${remote}" procd_append_param command --mode "${mode}" procd_append_param command --report "${report}" procd_append_param command --interval "${interval}" procd_append_param command --mtu "${mtu}" procd_append_param command --sock-buf "${sock_buf}" procd_append_param command --decode-buf "${decode_buf}" procd_append_param command --queue-len "${queue_len}" procd_append_param command --log-level "${log_level}" procd_append_param command --fifo "${fifo}" # procd_set_param respawn ${respawn_threshold:-3600} ${respawn_timeout:-5} ${respawn_retry:-5} procd_close_instance } start_service() { config_load 'udpspeeder' config_foreach start_instance 'udpspeeder' } stop_service() { service_stop ${PROG} } service_triggers() { procd_add_reload_trigger "udpspeeder" procd_add_validation validate_udpspeeder_section }