From 363682065d6874cf4549316cbc3ae46194e08be4 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Thu, 3 Jul 2014 22:55:20 +0200 Subject: [PATCH] added timeout to jingle socket --- .../xmpp/jingle/JingleConnection.java | 17 ++++++++++++++--- .../xmpp/jingle/JingleSocks5Transport.java | 2 ++ 2 files changed, 16 insertions(+), 3 deletions(-) diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java index 508fe95cd..1f2871944 100644 --- a/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java +++ b/src/eu/siacs/conversations/xmpp/jingle/JingleConnection.java @@ -99,6 +99,7 @@ public class JingleConnection { @Override public void onFileTransferAborted() { + JingleConnection.this.sendCancel(); JingleConnection.this.cancel(); } }; @@ -280,16 +281,26 @@ public class JingleConnection { } this.file = this.mXmppConnectionService.getFileBackend().getJingleFile(message,false); if (message.getEncryption() == Message.ENCRYPTION_OTR) { - this.file.setKey(conversation.getSymmetricKey()); + byte[] key = conversation.getSymmetricKey(); + if (key==null) { + this.sendCancel(); + this.cancel(); + return; + } else { + this.file.setKey(conversation.getSymmetricKey()); + } } this.file.setExpectedSize(size); } else { + this.sendCancel(); this.cancel(); } } else { + this.sendCancel(); this.cancel(); } } else { + this.sendCancel(); this.cancel(); } } @@ -410,6 +421,7 @@ public class JingleConnection { connection.setActivated(true); } else { Log.d("xmppService","activated connection not found"); + this.sendCancel(); this.cancel(); } } @@ -603,8 +615,7 @@ public class JingleConnection { this.mJingleConnectionManager.finishConnection(this); } - void cancel() { - this.sendCancel(); + public void cancel() { this.disconnect(); if (this.message!=null) { if (this.responder.equals(account.getFullJid())) { diff --git a/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java b/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java index 228827ab2..f9de6a6a1 100644 --- a/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java +++ b/src/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java @@ -5,6 +5,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; +import java.net.SocketTimeoutException; import java.net.UnknownHostException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; @@ -137,6 +138,7 @@ public class JingleSocks5Transport extends JingleTransport { MessageDigest digest = MessageDigest.getInstance("SHA-1"); digest.reset(); inputStream.skip(45); + socket.setSoTimeout(30000); file.getParentFile().mkdirs(); file.createNewFile(); OutputStream fileOutputStream = getOutputStream(file);