diff --git a/src/ddns_service/server.py b/src/ddns_service/server.py index 586d539..50b012b 100644 --- a/src/ddns_service/server.py +++ b/src/ddns_service/server.py @@ -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()