From 40b59d34688d01831f056677c42b6c3981d908f6 Mon Sep 17 00:00:00 2001 From: =?utf8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= Date: Mon, 27 Oct 2014 22:21:51 +0100 Subject: [PATCH] udpxy: rework init script and add disabled/respawn configs. MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit Signed-off-by: Álvaro Fernández Rojas --- net/udpxy/Makefile | 2 +- net/udpxy/files/udpxy.conf | 2 + net/udpxy/files/udpxy.init | 91 ++++++++++++++++++++------------------ 3 files changed, 52 insertions(+), 43 deletions(-) diff --git a/net/udpxy/Makefile b/net/udpxy/Makefile index b8df5b817a..8fc927645c 100644 --- a/net/udpxy/Makefile +++ b/net/udpxy/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=udpxy -PKG_VERSION:=2014-08-24 +PKG_VERSION:=2014-10-27 PKG_RELEASE:=$(PKG_SOURCE_VERSION) PKG_SOURCE_PROTO:=git diff --git a/net/udpxy/files/udpxy.conf b/net/udpxy/files/udpxy.conf index 8ef2a1e050..9117a53e37 100644 --- a/net/udpxy/files/udpxy.conf +++ b/net/udpxy/files/udpxy.conf @@ -1,4 +1,6 @@ config udpxy + option disabled '1' + option respawn '1' option verbose '0' option status '1' # option bind '0.0.0.0' diff --git a/net/udpxy/files/udpxy.init b/net/udpxy/files/udpxy.init index a08f4a1348..6f911a6fb7 100644 --- a/net/udpxy/files/udpxy.init +++ b/net/udpxy/files/udpxy.init @@ -4,57 +4,64 @@ START=50 USE_PROCD=1 -udpxy_parse() { +append_arg() { local cfg="$1" + local var="$2" + local opt="$3" + local def="$4" + local val - local cfg_verbose - local cfg_status - local cfg_mcsub_renew - local cfg_bind - local cfg_port - local cfg_source - local cfg_max_clients - local cfg_log_file - local cfg_buffer_size - local cfg_buffer_messages - local cfg_buffer_time - local cfg_nice_increment - local cfg_mcsub_renew - - config_get_bool cfg_verbose $cfg 'verbose' 0 - config_get_bool cfg_status $cfg 'status' 1 - config_get cfg_bind $cfg 'bind' - config_get cfg_port $cfg 'port' '4022' - config_get cfg_source $cfg 'source' - config_get cfg_max_clients $cfg 'max_clients' - config_get cfg_log_file $cfg 'log_file' - config_get cfg_buffer_size $cfg 'buffer_size' - config_get cfg_buffer_messages $cfg 'buffer_messages' - config_get cfg_buffer_time $cfg 'buffer_time' - config_get cfg_nice_increment $cfg 'nice_increment' - config_get cfg_mcsub_renew $cfg 'mcsub_renew' + config_get val "$cfg" "$var" + [ -n "$val" -o -n "$def" ] && procd_append_param command $opt "${val:-$def}" +} + +append_bool() { + local cfg="$1" + local var="$2" + local opt="$3" + local def="$4" + local val + + config_get_bool val "$cfg" "$var" "$def" + [ "$val" = 1 ] && procd_append_param command "$opt" +} + +start_instance() { + local cfg="$1" + local aux + + config_get_bool aux "$cfg" 'disabled' '0' + [ "$aux" = 1 ] && return 1 procd_open_instance procd_set_param command /usr/bin/udpxy - procd_append_param command -T -p $cfg_port - [ "$cfg_verbose" -eq 1 ] && procd_append_param command -v - [ "$cfg_status" -eq 1 ] && procd_append_param command -S - [ ! -z "$cfg_bind" ] && procd_append_param command -a $cfg_bind - [ ! -z "$cfg_source" ] && procd_append_param command -m $cfg_source - [ ! -z "$cfg_max_clients" ] && procd_append_param command -c $cfg_max_clients - [ ! -z "$cfg_log_file" ] && procd_append_param command -l $cfg_log_file - [ ! -z "$cfg_buffer_size" ] && procd_append_param command -B $cfg_buffer_size - [ ! -z "$cfg_buffer_messages" ] && procd_append_param command -R $cfg_buffer_messages - [ ! -z "$cfg_buffer_time" ] && procd_append_param command -H $cfg_buffer_time - [ ! -z "$cfg_nice_increment" ] && procd_append_param command -n $cfg_nice_increment - [ ! -z "$cfg_mcsub_renew" ] && procd_append_param command -M $cfg_mcsub_renew - - procd_set_param respawn + procd_append_param command "-T" + + append_bool "$cfg" verbose "-V" + append_bool "$cfg" status "-S" + append_arg "$cfg" bind "-a" + append_arg "$cfg" port "-p" + append_arg "$cfg" source "-m" + append_arg "$cfg" max_clients "-c" + append_arg "$cfg" log_file "-l" + append_arg "$cfg" buffer_size "-B" + append_arg "$cfg" buffer_messages "-R" + append_arg "$cfg" buffer_time "-H" + append_arg "$cfg" nice_increment "-n" + append_arg "$cfg" mcsub_renew "-M" + + config_get_bool aux "$cfg" 'respawn' '0' + [ "$aux" = 1 ] && procd_set_param respawn + procd_close_instance } +service_triggers() { + procd_add_reload_trigger "udpxy" +} + start_service() { config_load udpxy - config_foreach udpxy_parse udpxy + config_foreach start_instance udpxy } -- 2.30.2