diff options
author | Parménides GV <parmegv@sdf.org> | 2014-04-08 12:04:17 +0200 |
---|---|---|
committer | Parménides GV <parmegv@sdf.org> | 2014-04-08 12:04:17 +0200 |
commit | 3c3421afd8f74a3aa8d1011de07a8c18f9549210 (patch) | |
tree | 49d52344661c23d7268b8ea69466a1cfef04bf8b /bitmask_android/src/main/java/se/leap/openvpn/ProxyDetection.java | |
parent | 5fc5d37330d3535a0f421632694d1e7918fc22d7 (diff) |
Rename app->bitmask_android
This way, gradle commands generate apks correctly named.
Diffstat (limited to 'bitmask_android/src/main/java/se/leap/openvpn/ProxyDetection.java')
-rw-r--r-- | bitmask_android/src/main/java/se/leap/openvpn/ProxyDetection.java | 54 |
1 files changed, 54 insertions, 0 deletions
diff --git a/bitmask_android/src/main/java/se/leap/openvpn/ProxyDetection.java b/bitmask_android/src/main/java/se/leap/openvpn/ProxyDetection.java new file mode 100644 index 00000000..c7b3d196 --- /dev/null +++ b/bitmask_android/src/main/java/se/leap/openvpn/ProxyDetection.java @@ -0,0 +1,54 @@ +package se.leap.openvpn; + +import java.net.InetSocketAddress; +import java.net.MalformedURLException; +import java.net.Proxy; +import java.net.ProxySelector; +import java.net.SocketAddress; +import java.net.URISyntaxException; +import java.net.URL; +import java.util.List; + +import se.leap.bitmaskclient.R; + +public class ProxyDetection { + static SocketAddress detectProxy(VpnProfile vp) { + // Construct a new url with https as protocol + try { + URL url = new URL(String.format("https://%s:%s",vp.mServerName,vp.mServerPort)); + Proxy proxy = getFirstProxy(url); + + if(proxy==null) + return null; + SocketAddress addr = proxy.address(); + if (addr instanceof InetSocketAddress) { + return addr; + } + + } catch (MalformedURLException e) { + OpenVPN.logError(R.string.getproxy_error,e.getLocalizedMessage()); + } catch (URISyntaxException e) { + OpenVPN.logError(R.string.getproxy_error,e.getLocalizedMessage()); + } + return null; + } + + static Proxy getFirstProxy(URL url) throws URISyntaxException { + System.setProperty("java.net.useSystemProxies", "true"); + + List<Proxy> proxylist = ProxySelector.getDefault().select(url.toURI()); + + + if (proxylist != null) { + for (Proxy proxy: proxylist) { + SocketAddress addr = proxy.address(); + + if (addr != null) { + return proxy; + } + } + + } + return null; + } +}
\ No newline at end of file |