openconnect: make host dependency more resilient

Retry when resolveip fails as it seems to be causing issues
on startup depending on various unpredictable parameters.

Resolves: #23185

Signed-off-by: Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>
This commit is contained in:
Nikos Mavrogiannopoulos 2024-02-10 14:30:12 +01:00
parent 454290bf6c
commit 20ea72607b
2 changed files with 15 additions and 4 deletions

View File

@ -9,7 +9,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=openconnect PKG_NAME:=openconnect
PKG_VERSION:=9.12 PKG_VERSION:=9.12
PKG_RELEASE:=1 PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.infradead.org/openconnect/download PKG_SOURCE_URL:=https://www.infradead.org/openconnect/download

View File

@ -46,6 +46,7 @@ proto_openconnect_add_form_entry() {
proto_openconnect_setup() { proto_openconnect_setup() {
local config="$1" local config="$1"
local tmpfile="/tmp/openconnect-server.$$.tmp"
json_get_vars \ json_get_vars \
authgroup \ authgroup \
@ -76,11 +77,21 @@ proto_openconnect_setup() {
logger -t openconnect "initializing..." logger -t openconnect "initializing..."
[ -n "$interface" ] && { [ -n "$interface" ] && {
local trials=5
logger -t "openconnect" "adding host dependency for $server at $config" logger -t "openconnect" "adding host dependency for $server at $config"
for ip in $(resolveip -t 10 "$server"); do while resolveip -t 10 "$server" > "$tmpfile" && [ "$trials" -gt 0 ]; do
logger -t "openconnect" "adding host dependency for $ip at $config" sleep 5
proto_add_host_dependency "$config" "$ip" "$interface" trials=$((trials - 1))
done done
if [ -s "$tmpfile" ]; then
for ip in $(cat "$tmpfile"); do
logger -t "openconnect" "adding host dependency for $ip at $config"
proto_add_host_dependency "$config" "$ip" "$interface"
done
fi
rm -f "$tmpfile"
} }
[ -n "$port" ] && port=":$port" [ -n "$port" ] && port=":$port"