aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util
diff options
context:
space:
mode:
authorMichal Kepkowski <michal.kepkowski@sagiton.pl>2016-04-06 19:10:00 +0200
committerMichal Kepkowski <michal.kepkowski@sagiton.pl>2016-04-06 19:10:00 +0200
commitdac5f1db08b4dea5893d9fe0a1ab0daad5b44f09 (patch)
treeae358fc974c5065e8b76f01e70e34fa7526935b4 /OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util
parent6c2efb02353f34ea153f4bf8ed283685ccaad9a9 (diff)
downloadopen-keychain-dac5f1db08b4dea5893d9fe0a1ab0daad5b44f09.tar.gz
open-keychain-dac5f1db08b4dea5893d9fe0a1ab0daad5b44f09.tar.bz2
open-keychain-dac5f1db08b4dea5893d9fe0a1ab0daad5b44f09.zip
OKhttp url factory
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java7
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java27
2 files changed, 26 insertions, 8 deletions
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java
index 2bf3b7e14..cbbbf6e71 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpClientFactory.java
@@ -17,13 +17,18 @@ public class OkHttpClientFactory {
public static OkHttpClient getSimpleClient(){
if(client == null){
- client = new OkHttpClient.Builder().build();
+ client = new OkHttpClient.Builder()
+ .connectTimeout(30000, TimeUnit.MILLISECONDS)
+ .readTimeout(45000, TimeUnit.MILLISECONDS)
+ .build();
}
return client;
}
public static OkHttpClient getPinnedSimpleClient(CertificatePinner pinner){
return new OkHttpClient.Builder()
+ .connectTimeout(30000, TimeUnit.MILLISECONDS)
+ .readTimeout(45000, TimeUnit.MILLISECONDS)
.certificatePinner(pinner)
.build();
}
diff --git a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java
index 04527c730..e9fe7f724 100644
--- a/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java
+++ b/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java
@@ -21,32 +21,45 @@ package org.sufficientlysecure.keychain.util;
import com.textuality.keybase.lib.KeybaseUrlConnectionClient;
import okhttp3.OkHttpClient;
+import okhttp3.OkUrlFactory;
import org.sufficientlysecure.keychain.Constants;
import java.io.IOException;
import java.net.Proxy;
import java.net.URL;
+import java.net.URLConnection;
+import java.util.concurrent.TimeUnit;
/**
* Wrapper for Keybase Lib
*/
public class OkHttpKeybaseClient implements KeybaseUrlConnectionClient {
+ private OkUrlFactory generateUrlFactory() {
+ OkHttpClient client = new OkHttpClient();
+ return new OkUrlFactory(client);
+ }
@Override
- public OkHttpClient getClient(URL url, Proxy proxy, boolean pin) throws IOException {
+ public URLConnection openConnection(URL url, Proxy proxy, boolean isKeybase) throws IOException {
+ OkHttpClient client = OkHttpClientFactory.getSimpleClient();
+
+ OkUrlFactory factory = generateUrlFactory();
try {
- if(pin) {
- return OkHttpClientFactory.getPinnedClient(url, proxy);
- }else{
- return OkHttpClientFactory.getClient( proxy);
+ if (isKeybase && proxy != null) {
+ client = OkHttpClientFactory.getPinnedClient(url, proxy);
+ } else if (proxy != null) {
+ client = OkHttpClientFactory.getClient(proxy);
+ } else {
+ client = OkHttpClientFactory.getSimpleClient();
}
- } catch (IOException e) {
- throw new IOException("no pinned certificate found for URL!");
} catch (TlsHelper.TlsHelperException e) {
Log.e(Constants.TAG, "TlsHelper failed", e);
throw new IOException("TlsHelper failed");
}
+ factory.setClient(client);
+
+ return factory.open(url);
}
@Override