From f20fef245903cec7c4480fc600196b1e7ee2ab37 Mon Sep 17 00:00:00 2001 From: Albert Vaca Cintora Date: Fri, 17 Apr 2020 22:31:26 +0200 Subject: [PATCH] Fix "Connection closed by peer" crash --- src/org/kde/kdeconnect/Backends/LanBackend/LanLink.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/org/kde/kdeconnect/Backends/LanBackend/LanLink.java b/src/org/kde/kdeconnect/Backends/LanBackend/LanLink.java index c8853de3..5c264766 100644 --- a/src/org/kde/kdeconnect/Backends/LanBackend/LanLink.java +++ b/src/org/kde/kdeconnect/Backends/LanBackend/LanLink.java @@ -42,6 +42,7 @@ import java.net.Socket; import java.net.SocketTimeoutException; import java.nio.channels.NotYetConnectedException; +import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.SSLSocket; import androidx.annotation.WorkerThread; @@ -210,6 +211,11 @@ public class LanLink extends BaseLink { } outputStream.flush(); Log.i("KDE/LanLink", "Finished sending payload ("+progress+" bytes written)"); + } catch(SSLHandshakeException e) { + // The exception can be due to several causes. "Connection closed by peer" seems to be a common one. + // If we could distinguish different cases we could react differently for some of them, but I haven't found how. + Log.e("sendPacket","Payload SSLSocket failed"); + e.printStackTrace(); } finally { try { server.close(); } catch (Exception ignored) { } try { payloadSocket.close(); } catch (Exception ignored) { }