diff --git a/app/src/main/java/de/kuschku/quasseldroid/ssl/custom/QuasselHostnameManager.kt b/app/src/main/java/de/kuschku/quasseldroid/ssl/custom/QuasselHostnameManager.kt index 88320e9719794b975837e14b2d943f2695a9f484..ab8c130d0ab72f9096c61512c8669f8502be254f 100644 --- a/app/src/main/java/de/kuschku/quasseldroid/ssl/custom/QuasselHostnameManager.kt +++ b/app/src/main/java/de/kuschku/quasseldroid/ssl/custom/QuasselHostnameManager.kt @@ -11,7 +11,6 @@ class QuasselHostnameManager( fun isValid(address: SocketAddress, chain: Array<out X509Certificate>): Boolean { val leafCertificate = chain.firstOrNull() ?: return false val whitelistEntry = hostnameWhitelist.find(leafCertificate.fingerprint, address.host) - val all = hostnameWhitelist.all() return whitelistEntry != null } } diff --git a/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt b/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt index e8b28e00ad16557eced31c366c4aa3596ac3ff4f..c23cf9c40fccc972dc5d9bec500866a4de7edbb1 100644 --- a/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt +++ b/lib/src/main/java/de/kuschku/libquassel/connection/CoreConnection.kt @@ -202,13 +202,21 @@ class CoreConnection( } } channel?.close() - } catch (e: QuasselSecurityException) { - close() - securityExceptionCallback(e) } catch (e: Throwable) { - log(WARN, TAG, "Error encountered in connection", e) - log(WARN, TAG, "Last sent message: ${MessageRunnable.lastSent.get()}") - close() + var cause: Throwable? = e + var exception: QuasselSecurityException? + do { + exception = cause as? QuasselSecurityException + cause = cause?.cause + } while (cause != null && exception == null) + if (exception != null) { + close() + securityExceptionCallback(exception) + } else { + log(WARN, TAG, "Error encountered in connection", e) + log(WARN, TAG, "Last sent message: ${MessageRunnable.lastSent.get()}") + close() + } } }