]> git.ipfire.org Git - oddments/ddns.git/blobdiff - src/ddns/errors.py
Catch SSL errors
[oddments/ddns.git] / src / ddns / errors.py
index cd935d032001e65dfa25d08c82d2738f25fc9e59..58a5ba9beb0e0342d51d21dc7e140c3cbc591483 100644 (file)
 #                                                                             #
 ###############################################################################
 
+N_ = lambda x: x
+
 class DDNSError(Exception):
-       pass
+       """
+               Generic error class for all exceptions
+               raised by DDNS.
+       """
+       reason = N_("Error")
+
+       def __init__(self, message=None):
+               self.message = message
+
+
+class DDNSNetworkError(DDNSError):
+       """
+               Thrown when a network error occured.
+       """
+       reason = N_("Network error")
 
 
 class DDNSAbuseError(DDNSError):
@@ -28,7 +44,7 @@ class DDNSAbuseError(DDNSError):
                Thrown when the server reports
                abuse for this account.
        """
-       pass
+       reason = N_("The server denied processing the request because account abuse is suspected")
 
 
 class DDNSAuthenticationError(DDNSError):
@@ -36,7 +52,7 @@ class DDNSAuthenticationError(DDNSError):
                Thrown when the server did not
                accept the user credentials.
        """
-       pass
+       reason = N_("Authentication against the server has failed")
 
 
 class DDNSBlockedError(DDNSError):
@@ -45,7 +61,14 @@ class DDNSBlockedError(DDNSError):
                (specified by the user-agent) has been blocked
                by a dynamic DNS provider.
        """
-       pass
+       reason = N_("The server denies any updates from this client")
+
+
+class DDNSCertificateError(DDNSError):
+       """
+               Thrown when a server presented an invalid certificate.
+       """
+       reason = N_("Invalid certificate")
 
 
 class DDNSConfigurationError(DDNSError):
@@ -53,7 +76,21 @@ class DDNSConfigurationError(DDNSError):
                Thrown when invalid or insufficient
                data is provided by the configuration file.
        """
-       pass
+       reason = N_("The configuration file has errors")
+
+
+class DDNSConnectionRefusedError(DDNSNetworkError):
+       """
+               Thrown when a connection is refused.
+       """
+       reason = N_("Connection refused")
+
+
+class DDNSConnectionTimeoutError(DDNSNetworkError):
+       """
+               Thrown when a connection to a server has timed out.
+       """
+       reason = N_("Connection timeout")
 
 
 class DDNSHostNotFoundError(DDNSError):
@@ -61,7 +98,7 @@ class DDNSHostNotFoundError(DDNSError):
                Thrown when a configuration entry could
                not be found.
        """
-       pass
+       reason = N_("The host could not be found in the configuration file")
 
 
 class DDNSInternalServerError(DDNSError):
@@ -69,7 +106,28 @@ class DDNSInternalServerError(DDNSError):
                Thrown when the remote server reported
                an error on the provider site.
        """
-       pass
+       reason = N_("Internal server error")
+
+
+class DDNSNetworkUnreachableError(DDNSNetworkError):
+       """
+               Thrown when a network is not reachable.
+       """
+       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
+       """
+       reason = N_("Not found")
 
 
 class DDNSRequestError(DDNSError):
@@ -77,7 +135,30 @@ class DDNSRequestError(DDNSError):
                Thrown when a request could
                not be properly performed.
        """
-       pass
+       reason = N_("Request error")
+
+
+class DDNSResolveError(DDNSNetworkError):
+       """
+               Thrown when a DNS record could not be resolved
+               because of a local error.
+       """
+       reason = N_("Could not resolve DNS entry")
+
+
+class DDNSSSLError(DDNSNetworkError):
+       """
+               Raised when a SSL connection could not be
+               negotiated.
+       """
+       reason = N_("SSL negotiation error")
+
+
+class DDNSServiceUnavailableError(DDNSNetworkError):
+       """
+               Equivalent to HTTP error code 503.
+       """
+       reason = N_("Service unavailable")
 
 
 class DDNSUpdateError(DDNSError):
@@ -85,4 +166,4 @@ class DDNSUpdateError(DDNSError):
                Thrown when an update could not be
                properly performed.
        """
-       pass
+       reason = N_("The update could not be performed")