summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/client/ClientOptions.java')
-rw-r--r--src/com/isode/stroke/client/ClientOptions.java78
1 files changed, 76 insertions, 2 deletions
diff --git a/src/com/isode/stroke/client/ClientOptions.java b/src/com/isode/stroke/client/ClientOptions.java
index b410094..c2d9e3f 100644
--- a/src/com/isode/stroke/client/ClientOptions.java
+++ b/src/com/isode/stroke/client/ClientOptions.java
@@ -10,6 +10,8 @@ package com.isode.stroke.client;
import com.isode.stroke.tls.TLSOptions;
+import com.isode.stroke.base.URL;
+import com.isode.stroke.base.SafeByteArray;
/**
* Options for a client connection
@@ -40,7 +42,17 @@ public class ClientOptions {
* Default: false
*/
public boolean useStreamResumption;
-
+
+ /**
+ * Forget the password once it's used.
+ * This makes the Client useless after the first login attempt.
+ *
+ * FIXME: This is a temporary workaround.
+ *
+ * Default: false
+ */
+ public boolean forgetPassword;
+
/**
* Use XEP-0198 acks in the stream when available.
* Default: true
@@ -48,6 +60,12 @@ public class ClientOptions {
public boolean useAcks;
/**
+ * Use Single Sign On.
+ * Default: false
+ */
+ public boolean singleSignOn;
+
+ /**
* The hostname to connect to.
* Leave this empty for standard XMPP connection, based on the JID domain.
*/
@@ -60,6 +78,48 @@ public class ClientOptions {
*/
public int manualPort;
+ /**
+ * The type of proxy to use for connecting to the XMPP
+ * server.
+ */
+ public ProxyType proxyType;
+
+ /**
+ * Override the system-configured proxy hostname.
+ */
+ public String manualProxyHostname;
+
+ /**
+ * Override the system-configured proxy port.
+ */
+ public int manualProxyPort;
+
+ /**
+ * If non-empty, use BOSH instead of direct TCP, with the given URL.
+ * Default: empty (no BOSH)
+ */
+ public URL boshURL = new URL();
+
+ /**
+ * If non-empty, BOSH connections will try to connect over this HTTP CONNECT
+ * proxy instead of directly.
+ * Default: empty (no proxy)
+ */
+ public URL boshHTTPConnectProxyURL = new URL();
+
+ /**
+ * If this and matching Password are non-empty, BOSH connections over
+ * HTTP CONNECT proxies will use these credentials for proxy access.
+ * Default: empty (no authentication needed by the proxy)
+ */
+ public SafeByteArray boshHTTPConnectProxyAuthID;
+ public SafeByteArray boshHTTPConnectProxyAuthPassword;
+
+ /**
+ * This can be initialized with a custom HTTPTrafficFilter, which allows HTTP CONNECT
+ * proxy initialization to be customized.
+ */
+ //public HTTPTrafficFilter httpTrafficFilter; //TOPORT NETWORK
/**
* Options passed to the TLS stack
@@ -72,14 +132,28 @@ public class ClientOptions {
RequireTLS
}
+ public enum ProxyType {
+ NoProxy,
+ SystemConfiguredProxy,
+ SOCKS5Proxy,
+ HTTPConnectProxy
+ };
+
public ClientOptions() {
useStreamCompression = true;
useTLS = UseTLS.UseTLSWhenAvailable;
- useStreamResumption = false;
allowPLAINWithoutTLS = false;
+ useStreamResumption = false;
+ forgetPassword = false;
useAcks = true;
+ singleSignOn = false;
manualHostname = "";
manualPort = -1;
+ proxyType = ProxyType.SystemConfiguredProxy;
+ manualProxyHostname = "";
+ manualProxyPort = -1;
+ boshHTTPConnectProxyAuthID = new SafeByteArray("");
+ boshHTTPConnectProxyAuthPassword = new SafeByteArray("");
}
@Override