From ec9c264cf757f0dd78991f72ebf54164bad12995 Mon Sep 17 00:00:00 2001 From: iNPUTmice Date: Mon, 3 Nov 2014 19:59:11 +0100 Subject: more error handling for http connection --- .../eu/siacs/conversations/http/HttpConnection.java | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/src/main/java/eu/siacs/conversations/http/HttpConnection.java b/src/main/java/eu/siacs/conversations/http/HttpConnection.java index 0810e167..24eb5ed3 100644 --- a/src/main/java/eu/siacs/conversations/http/HttpConnection.java +++ b/src/main/java/eu/siacs/conversations/http/HttpConnection.java @@ -1,5 +1,11 @@ package eu.siacs.conversations.http; +import android.content.Intent; +import android.graphics.BitmapFactory; +import android.net.Uri; + +import org.apache.http.conn.ssl.StrictHostnameVerifier; + import java.io.BufferedInputStream; import java.io.IOException; import java.io.OutputStream; @@ -15,12 +21,6 @@ import javax.net.ssl.SSLContext; import javax.net.ssl.SSLHandshakeException; import javax.net.ssl.X509TrustManager; -import org.apache.http.conn.ssl.StrictHostnameVerifier; - -import android.content.Intent; -import android.graphics.BitmapFactory; -import android.net.Uri; - import eu.siacs.conversations.entities.Downloadable; import eu.siacs.conversations.entities.DownloadableFile; import eu.siacs.conversations.entities.Message; @@ -74,7 +74,7 @@ public class HttpConnection implements Downloadable { if (reference != null && reference.length() == 96) { this.file.setKey(CryptoHelper.hexToBytes(reference)); } - + if (this.message.getEncryption() == Message.ENCRYPTION_OTR && this.file.getKey() == null) { this.message.setEncryption(Message.ENCRYPTION_NONE); @@ -113,7 +113,7 @@ public class HttpConnection implements Downloadable { } private void setupTrustManager(HttpsURLConnection connection, - boolean interactive) { + boolean interactive) { X509TrustManager trustManager; HostnameVerifier hostnameVerifier; if (interactive) { @@ -131,7 +131,7 @@ public class HttpConnection implements Downloadable { } try { SSLContext sc = SSLContext.getInstance("TLS"); - sc.init(null, new X509TrustManager[] { trustManager }, + sc.init(null, new X509TrustManager[]{trustManager}, mXmppConnectionService.getRNG()); connection.setSSLSocketFactory(sc.getSocketFactory()); connection.setHostnameVerifier(hostnameVerifier); @@ -230,6 +230,9 @@ public class HttpConnection implements Downloadable { BufferedInputStream is = new BufferedInputStream( connection.getInputStream()); OutputStream os = file.createOutputStream(); + if (os == null) { + throw new IOException(); + } int count = -1; byte[] buffer = new byte[1024]; while ((count = is.read(buffer)) != -1) { -- cgit v1.2.3