Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorslewis2007-12-20 20:02:22 +0000
committerslewis2007-12-20 20:02:22 +0000
commit819ddaa13336e6516af0d3afd278a072cba2d647 (patch)
treef5ae24e7ac9714eaf5820fa76982247aba32b2bc
parentd9bc0371d925ce6b0c1adba3fc6d1e455f462eb5 (diff)
downloadorg.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.java10
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);
}
}

Back to the top