diff options
author | slewis | 2007-12-20 20:02:22 +0000 |
---|---|---|
committer | slewis | 2007-12-20 20:02:22 +0000 |
commit | 819ddaa13336e6516af0d3afd278a072cba2d647 (patch) | |
tree | f5ae24e7ac9714eaf5820fa76982247aba32b2bc | |
parent | d9bc0371d925ce6b0c1adba3fc6d1e455f462eb5 (diff) | |
download | org.eclipse.ecf-819ddaa13336e6516af0d3afd278a072cba2d647.tar.gz org.eclipse.ecf-819ddaa13336e6516af0d3afd278a072cba2d647.tar.xz org.eclipse.ecf-819ddaa13336e6516af0d3afd278a072cba2d647.zip |
Fixes for proxy handling...i.e. to get a set of proxies from proxyService (for a given target host), and the select a specific proxy from the set returned by proxyService. Added new method AbstractRetrieveFileTransfer.selectProxyFromProxies so that subclasses can override current selection behavior. Also added to httpclient the use of JRE socks proxy setup when proxy type is socks.
-rw-r--r-- | providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/provider/filetransfer/httpclient/HttpClientRetrieveFileTransfer.java | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/provider/filetransfer/httpclient/HttpClientRetrieveFileTransfer.java b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/provider/filetransfer/httpclient/HttpClientRetrieveFileTransfer.java index 73d95b380..94a2e2996 100644 --- a/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/provider/filetransfer/httpclient/HttpClientRetrieveFileTransfer.java +++ b/providers/bundles/org.eclipse.ecf.provider.filetransfer.httpclient/src/org/eclipse/ecf/provider/filetransfer/httpclient/HttpClientRetrieveFileTransfer.java @@ -27,6 +27,7 @@ import org.eclipse.ecf.filetransfer.identity.IFileID; import org.eclipse.ecf.internal.provider.filetransfer.httpclient.Messages; import org.eclipse.ecf.provider.filetransfer.identity.FileTransferID; import org.eclipse.ecf.provider.filetransfer.retrieve.AbstractRetrieveFileTransfer; +import org.eclipse.ecf.provider.filetransfer.util.JREProxyHelper; import org.eclipse.osgi.util.NLS; public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer { @@ -69,9 +70,12 @@ public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer protected long lastModifiedTime = 0L; + protected JREProxyHelper proxyHelper = null; + public HttpClientRetrieveFileTransfer(HttpClient httpClient) { this.httpClient = httpClient; Assert.isNotNull(this.httpClient); + proxyHelper = new JREProxyHelper(); } /* @@ -86,6 +90,10 @@ public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer getMethod = null; } responseCode = -1; + if (proxyHelper != null) { + proxyHelper.dispose(); + proxyHelper = null; + } } protected Credentials getFileRequestCredentials() throws UnsupportedCallbackException, IOException { @@ -430,6 +438,8 @@ public class HttpClientRetrieveFileTransfer extends AbstractRetrieveFileTransfer final AuthScope proxyAuthScope = new AuthScope(address.getHostName(), address.getPort(), AuthScope.ANY_REALM); httpClient.getState().setProxyCredentials(proxyAuthScope, credentials); } + } else if (proxy.getType().equals(Proxy.Type.SOCKS)) { + proxyHelper.setupProxy(proxy); } } |