From: Tim Flubshi Date: Sun, 26 Apr 2026 16:00:44 +0000 (+0200) Subject: ddns-scripts: netcup.com adjust update error path X-Git-Url: http://git.99rst.org/?a=commitdiff_plain;h=e6e05d2aa636dee3a069c9500a083b7d76fecdcc;p=openwrt-packages.git ddns-scripts: netcup.com adjust update error path Adjust the update error handling path to avoid hard failures on recoverable errors. This allows ddns to retry updates after the configured retry interval and improves reliability. Signed-off-by: Tim Flubshi --- diff --git a/net/ddns-scripts/Makefile b/net/ddns-scripts/Makefile index 296602de1..d90b1fcc5 100644 --- a/net/ddns-scripts/Makefile +++ b/net/ddns-scripts/Makefile @@ -8,7 +8,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=ddns-scripts PKG_VERSION:=2.8.3 -PKG_RELEASE:=2 +PKG_RELEASE:=3 PKG_LICENSE:=GPL-2.0 diff --git a/net/ddns-scripts/files/usr/lib/ddns/update_netcup_com.sh b/net/ddns-scripts/files/usr/lib/ddns/update_netcup_com.sh index 5ad204f09..dfb3670b1 100755 --- a/net/ddns-scripts/files/usr/lib/ddns/update_netcup_com.sh +++ b/net/ddns-scripts/files/usr/lib/ddns/update_netcup_com.sh @@ -134,8 +134,10 @@ netcup_check_response() { if [ "$__status" != "success" ]; then json_cleanup - write_log 14 "netcup DDNS: $__context failed (status='$__status' code=$__statuscode): $__shortmsg" + write_log 3 "netcup DDNS: $__context failed (status='$__status' code=$__statuscode): $__shortmsg" + return 1 fi + return 0 } # --------------------------------------------------------------------------- @@ -154,16 +156,21 @@ json_add_object "param" json_add_string "apipassword" "$password" json_close_object -netcup_post || write_log 14 "netcup DDNS: HTTP request failed during login" -netcup_check_response "login" +if ! netcup_post; then + write_log 3 "netcup DDNS: HTTP request failed during login" + return 1 +fi +netcup_check_response "login" || return 1 json_select "responsedata" json_get_var __SESSION_ID "apisessionid" json_select ".." json_cleanup -[ -z "$__SESSION_ID" ] && \ - write_log 14 "netcup DDNS: login succeeded but no session ID was returned" +if [ -z "$__SESSION_ID" ]; then + write_log 3 "netcup DDNS: login succeeded but no session ID was returned" + return 1 +fi write_log 6 "netcup DDNS: login successful" @@ -178,8 +185,11 @@ json_add_object "param" json_add_string "apisessionid" "$__SESSION_ID" json_close_object -netcup_post || write_log 14 "netcup DDNS: HTTP request failed during infoDnsRecords" -netcup_check_response "infoDnsRecords" +if ! netcup_post; then + write_log 3 "netcup DDNS: HTTP request failed during infoDnsRecords" + return 1 +fi +netcup_check_response "infoDnsRecords" || return 1 # --- Step 3: Find the record matching our hostname and type ---------------- # @@ -216,8 +226,10 @@ done json_cleanup -[ -z "$__MATCH_ID" ] && \ - write_log 14 "netcup DDNS: no [$__RRTYPE] record found for hostname '$__REC_HOSTNAME' in zone '$__ZONE'" +if [ -z "$__MATCH_ID" ]; then + write_log 3 "netcup DDNS: no [$__RRTYPE] record found for hostname '$__REC_HOSTNAME' in zone '$__ZONE'" + return 1 +fi # --- Step 4: Update the matched record with the new IP --------------------- @@ -242,8 +254,12 @@ json_add_object "param" json_close_object json_close_object -netcup_post || write_log 14 "netcup DDNS: HTTP request failed during updateDnsRecords" -netcup_check_response "updateDnsRecords" +if ! netcup_post; then + write_log 3 "netcup DDNS: HTTP request failed during updateDnsRecords" + return 1 +fi + +netcup_check_response "updateDnsRecords" || return 1 json_cleanup write_log 6 "netcup DDNS: '$__REC_HOSTNAME.$__ZONE' [$__RRTYPE] updated to $__IP"