aboutsummaryrefslogtreecommitdiff
path: root/net/openconnect
diff options
context:
space:
mode:
authorNikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>2024-02-10 14:30:12 +0100
committerNikos Mavrogiannopoulos <n.mavrogiannopoulos@gmail.com>2024-02-16 04:57:48 +0100
commit20ea72607bbf06b6b899a11bbe53955e0bd16550 (patch)
tree20601f1350ac4b8384f7cc0136af7b80bc5e4d8c /net/openconnect
parent454290bf6cb6aafb9511f39c1aabd66f7e520a86 (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/Makefile2
-rwxr-xr-xnet/openconnect/files/openconnect.sh17
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"