[PATCH] Catch 'Internal Server Error' on update

Michael Tremer michael.tremer at ipfire.org
Sat Jul 4 12:25:17 CEST 2015


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 at 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



More information about the ddns mailing list