mirror of
https://github.com/openwrt/packages.git
synced 2026-05-31 06:51:51 +08:00
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 <flubshi@gmail.com>
(cherry picked from commit e6e05d2aa6)
This commit is contained in:
committed by
Florian Eckert
parent
f168b37807
commit
4125370fed
@@ -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
|
||||
|
||||
|
||||
@@ -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"
|
||||
|
||||
Reference in New Issue
Block a user