Change _process_ip_update to always return a set of three values

This commit is contained in:
2026-01-23 22:11:43 +01:00
parent 5bb37fde71
commit 2123b5169b

View File

@@ -286,11 +286,8 @@ class DDNSRequestHandler(BaseHTTPRequestHandler):
# Determine IPs to update
result = self._process_ip_update(hostname, params, endpoint, client_ip)
if result:
code, status, *kwargs = result
if kwargs:
self.respond(code, status, **kwargs[0])
else:
self.respond(code, status)
code, status, kwargs = result
self.respond(code, status, **kwargs)
def _handle_bad_request(self, client_ip, code, status):
"""Handle bad request and record in rate limiter."""
@@ -315,7 +312,7 @@ class DDNSRequestHandler(BaseHTTPRequestHandler):
else:
ipv6 = myip
except ValueError:
return (400, STATUS_BADIP)
return (400, STATUS_BADIP, {})
# Process myip6 parameter
if myip6:
@@ -324,9 +321,9 @@ class DDNSRequestHandler(BaseHTTPRequestHandler):
if rtype == "AAAA":
ipv6 = myip6
else:
return (400, STATUS_BADIP)
return (400, STATUS_BADIP, {})
except ValueError:
return (400, STATUS_BADIP)
return (400, STATUS_BADIP, {})
# Auto-detect from client IP if no params
if ipv4 is None and ipv6 is None:
@@ -337,7 +334,7 @@ class DDNSRequestHandler(BaseHTTPRequestHandler):
else:
ipv6 = ip
except ValueError:
return (400, STATUS_BADIP)
return (400, STATUS_BADIP, {})
now = utc_now()
@@ -362,7 +359,7 @@ class DDNSRequestHandler(BaseHTTPRequestHandler):
f"DNS update failed: client={client_ip} hostname={hostname.hostname} "
f"zone={hostname.zone} ipv4={ipv4} error={e}"
)
return (500, STATUS_DNSERR)
return (500, STATUS_DNSERR, {})
if ipv6:
hostname.last_ipv6_update = now
@@ -383,7 +380,7 @@ class DDNSRequestHandler(BaseHTTPRequestHandler):
f"DNS update failed: client={client_ip} hostname={hostname.hostname} "
f"zone={hostname.zone} ipv6={ipv6} error={e}"
)
return (500, STATUS_DNSERR)
return (500, STATUS_DNSERR, {})
# Update database
hostname.save()