When there is no route to a target host, we will throw a DDNSNetworkError so that this error can be handled afterwards.
Signed-off-by: Michael Tremer michael.tremer@ipfire.org --- src/ddns/errors.py | 7 +++++++ src/ddns/system.py | 4 ++++ 2 files changed, 11 insertions(+)
diff --git a/src/ddns/errors.py b/src/ddns/errors.py index 293b4eb..26bc18e 100644 --- a/src/ddns/errors.py +++ b/src/ddns/errors.py @@ -109,6 +109,13 @@ class DDNSNetworkUnreachableError(DDNSNetworkError): reason = N_("Network unreachable")
+class DDNSNoRouteToHostError(DDNSNetworkError): + """ + Thrown when there is no route to a host. + """ + reason = N_("No route to host") + + class DDNSNotFound(DDNSError): """ Thrown when the called URL has not been found diff --git a/src/ddns/system.py b/src/ddns/system.py index 8415579..6a21af8 100644 --- a/src/ddns/system.py +++ b/src/ddns/system.py @@ -211,6 +211,10 @@ class DDNSSystem(object): elif e.reason.errno == 111: raise DDNSConnectionRefusedError
+ # No route to host + elif e.reason.errno == 113: + raise DDNSNoRouteToHostError(req.host) + # Raise all other unhandled exceptions. raise