From 6b861d9eb8efa77d649e5899decdf21cbdf1d2ed Mon Sep 17 00:00:00 2001 From: Christian Schneppe Date: Sun, 29 Oct 2017 19:12:47 +0100 Subject: Jingle: create output stream on demand --- .../de/pixart/messenger/xmpp/jingle/JingleConnection.java | 11 +++++++++-- .../pixart/messenger/xmpp/jingle/JingleInbandTransport.java | 2 -- .../pixart/messenger/xmpp/jingle/JingleSocks5Transport.java | 2 -- 3 files changed, 9 insertions(+), 6 deletions(-) (limited to 'src/main/java/de') diff --git a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleConnection.java b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleConnection.java index d8bb0c21d..54e9bd205 100644 --- a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleConnection.java +++ b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleConnection.java @@ -5,6 +5,7 @@ import android.util.Log; import android.util.Pair; import java.io.FileNotFoundException; +import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.text.SimpleDateFormat; @@ -157,7 +158,14 @@ public class JingleConnection implements Transferable { return this.mFileInputStream; } - public OutputStream getFileOutputStream() { + public OutputStream getFileOutputStream() throws IOException { + if (this.file == null) { + Log.d(Config.LOGTAG, "file object was not assigned"); + return null; + } + this.file.getParentFile().mkdirs(); + this.file.createNewFile(); + this.mFileOutputStream = AbstractConnectionManager.createOutputStream(this.file, message.getEncryption() == Message.ENCRYPTION_AXOLOTL); return this.mFileOutputStream; } @@ -463,7 +471,6 @@ public class JingleConnection implements Transferable { this.file.setKeyAndIv(key); } } - this.mFileOutputStream = AbstractConnectionManager.createOutputStream(this.file, message.getEncryption() == Message.ENCRYPTION_AXOLOTL); this.file.setExpectedSize(size); message.resetFileParams(); Log.d(Config.LOGTAG, "receiving file: expecting size of " + this.file.getExpectedSize()); diff --git a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleInbandTransport.java b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleInbandTransport.java index a945f9241..61a87c2b9 100644 --- a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleInbandTransport.java +++ b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleInbandTransport.java @@ -100,8 +100,6 @@ public class JingleInbandTransport extends JingleTransport { try { this.digest = MessageDigest.getInstance("SHA-1"); digest.reset(); - file.getParentFile().mkdirs(); - file.createNewFile(); this.fileOutputStream = connection.getFileOutputStream(); if (this.fileOutputStream == null) { Log.d(Config.LOGTAG, account.getJid().toBareJid() + ": could not create output stream"); diff --git a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java index aa30d69a5..595f17e28 100644 --- a/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java +++ b/src/main/java/de/pixart/messenger/xmpp/jingle/JingleSocks5Transport.java @@ -141,8 +141,6 @@ public class JingleSocks5Transport extends JingleTransport { digest.reset(); //inputStream.skip(45); socket.setSoTimeout(30000); - file.getParentFile().mkdirs(); - file.createNewFile(); fileOutputStream = connection.getFileOutputStream(); if (fileOutputStream == null) { callback.onFileTransferAborted(); -- cgit v1.2.3