diff options
Diffstat (limited to 'src/com/isode/stroke/network/HTTPConnectProxiedConnectionFactory.java')
-rw-r--r-- | src/com/isode/stroke/network/HTTPConnectProxiedConnectionFactory.java | 67 |
1 files changed, 67 insertions, 0 deletions
diff --git a/src/com/isode/stroke/network/HTTPConnectProxiedConnectionFactory.java b/src/com/isode/stroke/network/HTTPConnectProxiedConnectionFactory.java new file mode 100644 index 0000000..1f45915 --- /dev/null +++ b/src/com/isode/stroke/network/HTTPConnectProxiedConnectionFactory.java @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2012-2015 Isode Limited. + * All rights reserved. + * See the COPYING file for more information. + */ +/* + * Copyright (c) 2010-2011 Thilo Cestonaro + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ +/* + * Copyright (c) 2015 Tarun Gupta. + * Licensed under the simplified BSD license. + * See Documentation/Licenses/BSD-simplified.txt for more information. + */ + +package com.isode.stroke.network; + +import com.isode.stroke.base.SafeByteArray; + +public class HTTPConnectProxiedConnectionFactory implements ConnectionFactory { + + private DomainNameResolver resolver_; + private ConnectionFactory connectionFactory_; + private TimerFactory timerFactory_; + private String proxyHost_; + private int proxyPort_; + private SafeByteArray authID_; + private SafeByteArray authPassword_; + private HTTPTrafficFilter httpTrafficFilter_; + + public HTTPConnectProxiedConnectionFactory(DomainNameResolver resolver, ConnectionFactory connectionFactory, TimerFactory timerFactory, final String proxyHost, int proxyPort) { + this(resolver, connectionFactory, timerFactory, proxyHost, proxyPort, null); + } + + public HTTPConnectProxiedConnectionFactory(DomainNameResolver resolver, ConnectionFactory connectionFactory, TimerFactory timerFactory, final String proxyHost, int proxyPort, HTTPTrafficFilter httpTrafficFilter) { + resolver_ = resolver; + connectionFactory_ = connectionFactory; + timerFactory_ = timerFactory; + proxyHost_ = proxyHost; + proxyPort_ = proxyPort; + authID_ = new SafeByteArray(""); + authPassword_ = new SafeByteArray(""); + httpTrafficFilter_ = httpTrafficFilter; + } + + public HTTPConnectProxiedConnectionFactory(DomainNameResolver resolver, ConnectionFactory connectionFactory, TimerFactory timerFactory, final String proxyHost, int proxyPort, final SafeByteArray authID, final SafeByteArray authPassword) { + this(resolver, connectionFactory, timerFactory, proxyHost, proxyPort, authID, authPassword, null); + } + + public HTTPConnectProxiedConnectionFactory(DomainNameResolver resolver, ConnectionFactory connectionFactory, TimerFactory timerFactory, final String proxyHost, int proxyPort, final SafeByteArray authID, final SafeByteArray authPassword, HTTPTrafficFilter httpTrafficFilter) { + resolver_ = resolver; + connectionFactory_ = connectionFactory; + timerFactory_ = timerFactory; + proxyHost_ = proxyHost; + proxyPort_ = proxyPort; + authID_ = authID; + authPassword_ = authPassword; + httpTrafficFilter_ = httpTrafficFilter; + } + + public Connection createConnection() { + HTTPConnectProxiedConnection proxyConnection = HTTPConnectProxiedConnection.create(resolver_, connectionFactory_, timerFactory_, proxyHost_, proxyPort_, authID_, authPassword_); + proxyConnection.setHTTPTrafficFilter(httpTrafficFilter_); + return proxyConnection; + } +}
\ No newline at end of file |