diff options
author | Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com> | 2024-02-10 14:30:12 +0100 |
---|---|---|
committer | Nikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com> | 2024-02-16 04:57:48 +0100 |
commit | 20ea72607bbf06b6b899a11bbe53955e0bd16550 (patch) | |
tree | 20601f1350ac4b8384f7cc0136af7b80bc5e4d8c /net/openconnect | |
parent | 454290bf6cb6aafb9511f39c1aabd66f7e520a86 (diff) |
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>
Diffstat (limited to 'net/openconnect')
-rw-r--r-- | net/openconnect/Makefile | 2 | ||||
-rwxr-xr-x | net/openconnect/files/openconnect.sh | 17 |
2 files changed, 15 insertions, 4 deletions
diff --git a/net/openconnect/Makefile b/net/openconnect/Makefile index f3bb6b673..ff046a16f 100644 --- a/net/openconnect/Makefile +++ b/net/openconnect/Makefile @@ -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 diff --git a/net/openconnect/files/openconnect.sh b/net/openconnect/files/openconnect.sh index d318b97e0..707c770e7 100755 --- a/net/openconnect/files/openconnect.sh +++ b/net/openconnect/files/openconnect.sh @@ -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" |