Skip to content

Commit

Permalink
Merge pull request openwrt#5490 from TDT-AG/pr/20180123-stunnel-fix-r…
Browse files Browse the repository at this point in the history
…eload

net/stunnel: fix reload and crash loop on invalid configuration
  • Loading branch information
hnyman authored Jan 23, 2018
2 parents 2570aeb + 3426baf commit 8372e4c
Show file tree
Hide file tree
Showing 2 changed files with 16 additions and 16 deletions.
5 changes: 2 additions & 3 deletions net/stunnel/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,10 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=stunnel
PKG_VERSION:=5.44
PKG_RELEASE:=3
PKG_RELEASE:=4

PKG_LICENSE:=GPL-2.0+
PKG_MAINTAINER:=Daniel Engberg <[email protected]> \
Florian Eckert <[email protected]>
PKG_MAINTAINER:=Florian Eckert <[email protected]>
PKG_LICENSE_FILES:=COPYING COPYRIGHT.GPL

PKG_SOURCE_URL:= \
Expand Down
27 changes: 14 additions & 13 deletions net/stunnel/files/stunnel.init
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ USE_PROCD=1
PID_FILE="/var/run/stunnel.pid"
CONF_FILE="/tmp/stunnel.conf"
BIN="/usr/bin/stunnel"
SERVICE_SECTION_FOUND=0

global_defs() {
local debug compression
Expand Down Expand Up @@ -86,6 +87,7 @@ service_section() {
config_get_bool enabled "$cfg" 'enabled' '1'
[ ${enabled} -gt 0 ] || return 0

SERVICE_SECTION_FOUND=1
printf "\n" >> "$CONF_FILE"
printf "[%s]\n" "$cfg" >> "$CONF_FILE"

Expand Down Expand Up @@ -150,30 +152,29 @@ process_config() {
rm -f "$CONF_FILE"
# Symlink "alt_config_file" since it's a bit easier and safer
ln -s "$alt_config_file" "$CONF_FILE"
# Set section found to start service user hopfully knows what you does
SERVICE_SECTION_FOUND=1
return 0
}

config_foreach service_section service
}

reload_service() {
process_config
# SIGHUP is used by stunnel to do init.d reload
procd_send_signal stunnel
}

service_triggers() {
procd_add_reload_trigger "stunnel"
}

start_service() {
procd_open_instance
procd_set_param command "$BIN"
procd_append_param command "$CONF_FILE"

process_config

# set auto respawn behavior
procd_set_param respawn
procd_close_instance
if [ "$SERVICE_SECTION_FOUND" = 1 ]; then
procd_open_instance
procd_set_param command "$BIN"
procd_append_param command "$CONF_FILE"
procd_set_param respawn
procd_set_param file "$CONF_FILE"
procd_close_instance
else
logger -t stunnel -p daemon.info "No uci service section enabled or found!"
fi
}

0 comments on commit 8372e4c

Please sign in to comment.