summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/network/HTTPConnectProxiedConnectionFactory.java')
-rw-r--r--src/com/isode/stroke/network/HTTPConnectProxiedConnectionFactory.java67
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