When there is an internal server error, we won't log an error
and hold off updates for a while. This is an error on the
provider's side and the client must retry in order to update
the hostname.
This error was seen with selfhost.
Signed-off-by: Michael Tremer <michael.tremer(a)ipfire.org>
---
src/ddns/providers.py | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/src/ddns/providers.py b/src/ddns/providers.py
index fc1fb82..9eaaa6c 100644
--- a/src/ddns/providers.py
+++ b/src/ddns/providers.py
@@ -161,10 +161,13 @@ class DDNSProvider(object):
try:
self.update()
- # Catch network errors early, because we do not want to log
+ # 1) Catch network errors early, because we do not want to log
# them to the database. They are usually temporary and caused
# by the client side, so that we will retry quickly.
- except DDNSNetworkError as e:
+ # 2) If there is an internet server error (HTTP code 500) on the
+ # provider's site, we will not log a failure and try again
+ # shortly.
+ except (DDNSNetworkError, DDNSInternalServerError):
raise
# In case of any errors, log the failed request and
--
2.4.4