mirror of
https://github.com/openwrt/packages.git
synced 2025-03-15 00:58:44 +00:00
This commit adds a uci configuration file and makes the gatling server controllable by procd. Co-authored-by: Moritz Warning <moritzwarning@web.de> Signed-off-by: Martin Hübner <martin.hubner@web.de>
102 lines
2.2 KiB
Bash
Executable File
102 lines
2.2 KiB
Bash
Executable File
#!/bin/sh /etc/rc.common
|
|
|
|
# shellcheck shell=ash
|
|
|
|
# Just looks for changes in the config-file and applies them with a
|
|
# one-time-run.
|
|
|
|
USE_PROCD=1
|
|
# PROCD_DEBUG=1
|
|
|
|
# taken from /etc/init.d/uhttpd
|
|
append_arg() {
|
|
local cfg="$1"
|
|
local var="$2"
|
|
local opt="$3"
|
|
local def="$4"
|
|
local val
|
|
|
|
config_get val "$cfg" "$var"
|
|
[ -n "$val" -o -n "$def" ] && procd_append_param command "$opt" "${val:-$def}"
|
|
}
|
|
|
|
service_triggers() {
|
|
procd_add_reload_trigger "gatling"
|
|
}
|
|
|
|
start_instance() {
|
|
|
|
local cfg="$1"
|
|
local ftp_server
|
|
local enabled
|
|
|
|
config_get_bool enabled "$cfg" 'enabled' 1
|
|
[ $enabled -gt 0 ] || return
|
|
|
|
procd_open_instance
|
|
|
|
procd_set_param command /usr/bin/gatling
|
|
procd_set_param stdout 1
|
|
procd_set_param stderr 1
|
|
procd_set_param term_timeout 20
|
|
|
|
# get listen-address and slice it from back, to cut at port-delimiter
|
|
config_get listen_http "$cfg" 'listen_http'
|
|
port="${listen_http##*:}"
|
|
ip="${listen_http%:*}"
|
|
case "$ip" in
|
|
'['*']') ip="${ip:1:-1}" ;;
|
|
esac
|
|
|
|
procd_append_param command -i "$ip"
|
|
procd_append_param command -p "$port"
|
|
|
|
append_arg "$cfg" switch_to_uid "-u"
|
|
append_arg "$cfg" chroot_dir "-c"
|
|
append_arg "$cfg" timeout "-T"
|
|
|
|
config_get_bool virtual_hosting "$cfg" 'virtual_hosting' 0
|
|
if [ "$virtual_hosting" -gt 0 ]; then
|
|
# enable virtual hosting
|
|
procd_append_param command -v
|
|
else
|
|
# disable
|
|
procd_append_param command -V
|
|
fi
|
|
|
|
config_get_bool ftp_server "$cfg" 'ftp_server' 0
|
|
if [ "$ftp_server" -gt 0 ]; then
|
|
procd_append_param command -f
|
|
append_arg "$cfg" ftp_port "-p"
|
|
else
|
|
procd_append_param command -F
|
|
fi
|
|
|
|
config_get_bool logging "$cfg" 'logging' 1
|
|
if [ "$logging" = 0 ]; then
|
|
procd_append_param command -n
|
|
fi
|
|
|
|
config_get_bool tarpit_clients "$cfg" 'tarpit_clients' 0
|
|
if [ "$tarpit_clients" -gt 0 ]; then
|
|
append_arg "$cfg" tarpit_clients_at "-A"
|
|
fi
|
|
|
|
config_get_bool localhost_access_only "$cfg" 'localhost_access_only' 0
|
|
if [ "$localhost_access_only" = 1 ]; then
|
|
procd_append_param command -L
|
|
fi
|
|
|
|
config_get_bool permit_access_ftp_uploads_immediately "$cfg" 'permit_access_ftp_uploads_immediately' 0
|
|
if [ "$permit_access_ftp_uploads_immediately" = 1 ]; then
|
|
procd_append_param command -a
|
|
fi
|
|
|
|
procd_close_instance
|
|
}
|
|
|
|
start_service() {
|
|
config_load gatling
|
|
config_foreach start_instance gatling
|
|
}
|