From da4d38bbb506bcd46a7c88a7c4ad0cf0dec78cfb Mon Sep 17 00:00:00 2001 From: Daniele Ricci Date: Sat, 17 Feb 2018 19:55:47 +0100 Subject: [PATCH] Allow HTTP connections for upload (fix #1137) Signed-off-by: Daniele Ricci --- .../upload/HTPPFileUploadConnection.java | 26 +++++++++---------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/app/src/main/java/org/kontalk/upload/HTPPFileUploadConnection.java b/app/src/main/java/org/kontalk/upload/HTPPFileUploadConnection.java index fe2c93c4a..e6d9fca2a 100644 --- a/app/src/main/java/org/kontalk/upload/HTPPFileUploadConnection.java +++ b/app/src/main/java/org/kontalk/upload/HTPPFileUploadConnection.java @@ -20,6 +20,7 @@ import java.io.IOException; import java.io.InputStream; +import java.net.HttpURLConnection; import java.net.URL; import java.security.KeyManagementException; import java.security.KeyStoreException; @@ -52,7 +53,7 @@ public class HTPPFileUploadConnection implements UploadConnection { private final Context mContext; private final String mUrl; - private HttpsURLConnection currentRequest; + private HttpURLConnection currentRequest; private final static int CONNECT_TIMEOUT = 15000; private final static int READ_TIMEOUT = 40000; @@ -94,7 +95,7 @@ public String upload(Uri uri, long length, String mime, boolean encrypt, String[ return null; } catch (Exception e) { - throw innerException("upload error", e); + throw new IOException("upload error", e); } finally { currentRequest.disconnect(); @@ -110,22 +111,19 @@ public String upload(Uri uri, long length, String mime, boolean encrypt, String[ } } - private IOException innerException(String detail, Throwable cause) { - return new IOException(detail, cause); - } - @SuppressLint("AllowAllHostnameVerifier") - @SuppressWarnings("deprecation") - private void setupClient(HttpsURLConnection conn, long length, String mime, boolean acceptAnyCertificate) + private void setupClient(HttpURLConnection conn, long length, String mime, boolean acceptAnyCertificate) throws CertificateException, UnrecoverableKeyException, NoSuchAlgorithmException, KeyStoreException, KeyManagementException, NoSuchProviderException, IOException { - conn.setSSLSocketFactory(ClientHTTPConnection.setupSSLSocketFactory(mContext, - null, null, acceptAnyCertificate)); - if (acceptAnyCertificate) - conn.setHostnameVerifier(new AllowAllHostnameVerifier()); + if (conn instanceof HttpsURLConnection) { + ((HttpsURLConnection) conn).setSSLSocketFactory(ClientHTTPConnection.setupSSLSocketFactory(mContext, + null, null, acceptAnyCertificate)); + if (acceptAnyCertificate) + ((HttpsURLConnection) conn).setHostnameVerifier(new AllowAllHostnameVerifier()); + } conn.setRequestProperty("Content-Type", mime != null ? mime : "application/octet-stream"); // bug caused by Lighttpd @@ -146,11 +144,11 @@ private void setupClient(HttpsURLConnection conn, long length, String mime, bool } /** A message posting method. */ - private HttpsURLConnection prepareMessage(long length, String mime, boolean acceptAnyCertificate) + private HttpURLConnection prepareMessage(long length, String mime, boolean acceptAnyCertificate) throws IOException { // create uri - HttpsURLConnection conn = (HttpsURLConnection) new URL(mUrl).openConnection(); + HttpURLConnection conn = (HttpURLConnection) new URL(mUrl).openConnection(); try { setupClient(conn, length, mime, acceptAnyCertificate); }