aboutsummaryrefslogtreecommitdiffstats
path: root/OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java')
-rw-r--r--OpenKeychain/src/main/java/org/sufficientlysecure/keychain/util/OkHttpKeybaseClient.java27
1 files changed, 20 insertions, 7 deletions
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