diff --git a/custom_components/mikrotik_router/.translations/en.json b/custom_components/mikrotik_router/.translations/en.json index 3396511..d0d68fc 100644 --- a/custom_components/mikrotik_router/.translations/en.json +++ b/custom_components/mikrotik_router/.translations/en.json @@ -18,6 +18,7 @@ "error": { "name_exists": "Name already exists.", "cannot_connect": "Cannot connect to Mikrotik.", + "ssl_handshake_failure": "SSL handshake failure", "connection_timeout": "Mikrotik connection timeout.", "wrong_login": "Invalid user name or password." } diff --git a/custom_components/mikrotik_router/mikrotikapi.py b/custom_components/mikrotik_router/mikrotikapi.py index 2b3d76b..0be5a0e 100644 --- a/custom_components/mikrotik_router/mikrotikapi.py +++ b/custom_components/mikrotik_router/mikrotikapi.py @@ -75,7 +75,8 @@ class MikrotikAPI: librouteros.exceptions.MultiTrapError, librouteros.exceptions.ConnectionClosed, librouteros.exceptions.ProtocolError, - librouteros.exceptions.FatalError + librouteros.exceptions.FatalError, + ssl.SSLError ) as api_error: _LOGGER.error("Mikrotik %s: %s", self._host, api_error) self.error_to_strings("%s" % api_error) @@ -95,6 +96,9 @@ class MikrotikAPI: self.error = "cannot_connect" if error == "invalid user name or password (6)": self.error = "wrong_login" + + if "ALERT_HANDSHAKE_FAILURE" in error: + self.error = "ssl_handshake_failure" return diff --git a/custom_components/mikrotik_router/strings.json b/custom_components/mikrotik_router/strings.json index 3396511..d0d68fc 100644 --- a/custom_components/mikrotik_router/strings.json +++ b/custom_components/mikrotik_router/strings.json @@ -18,6 +18,7 @@ "error": { "name_exists": "Name already exists.", "cannot_connect": "Cannot connect to Mikrotik.", + "ssl_handshake_failure": "SSL handshake failure", "connection_timeout": "Mikrotik connection timeout.", "wrong_login": "Invalid user name or password." }