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_VERSION:=9.12
PKG_RELEASE:=1
PKG_RELEASE:=2
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
PKG_SOURCE_URL:=https://www.infradead.org/openconnect/download

View File

@ -46,6 +46,7 @@ proto_openconnect_add_form_entry() {
proto_openconnect_setup() {
local config="$1"
local tmpfile="/tmp/openconnect-server.$$.tmp"
json_get_vars \
authgroup \
@ -76,11 +77,21 @@ proto_openconnect_setup() {
logger -t openconnect "initializing..."
[ -n "$interface" ] && {
local trials=5
logger -t "openconnect" "adding host dependency for $server at $config"
for ip in $(resolveip -t 10 "$server"); do
logger -t "openconnect" "adding host dependency for $ip at $config"
proto_add_host_dependency "$config" "$ip" "$interface"
while resolveip -t 10 "$server" > "$tmpfile" && [ "$trials" -gt 0 ]; do
sleep 5
trials=$((trials - 1))
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"