acme: Make sure we don't handle the same listener twice

If a daemon listens on multiple addresses at once, it'll show up multiple
times in get_listeners() which will clobber the config for uhttpd. Fix this
by skipping subsequent handlings of the same daemon binary.

Fixes #13325.

Signed-off-by: Toke Høiland-Jørgensen <toke@toke.dk>
This commit is contained in:
Toke Høiland-Jørgensen 2020-09-08 11:59:38 +02:00
parent da183bdb3d
commit e6c1676cb4
2 changed files with 11 additions and 1 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=acme
PKG_VERSION:=2.8.6
PKG_RELEASE:=4
PKG_RELEASE:=5
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://github.com/acmesh-official/acme.sh/archive/$(PKG_VERSION).tar.gz

View File

@ -77,6 +77,11 @@ pre_checks()
case "$cmd" in
uhttpd)
if [ -n "$UHTTPD_LISTEN_HTTP" ]; then
debug "Already handled uhttpd; skipping"
continue
fi
debug "Found uhttpd listening on port 80; trying to disable."
UHTTPD_LISTEN_HTTP=$(uci get uhttpd.main.listen_http)
@ -96,6 +101,11 @@ pre_checks()
fi
;;
nginx*)
if [ "$NGINX_WEBSERVER" -eq "1" ]; then
debug "Already handled nginx; skipping"
continue
fi
debug "Found nginx listening on port 80; trying to disable."
NGINX_WEBSERVER=1
local tries=0