mirror of
https://github.com/openwrt/packages.git
synced 2026-05-31 15:02:01 +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>
This commit is contained in:
committed by
Florian Eckert
parent
bd6a551669
commit
e6e05d2aa6
@@ -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