summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/isode/stroke/client')
-rw-r--r--src/com/isode/stroke/client/ClientOptions.java8
-rw-r--r--src/com/isode/stroke/client/ClientSession.java8
-rw-r--r--src/com/isode/stroke/client/CoreClient.java9
3 files changed, 17 insertions, 8 deletions
diff --git a/src/com/isode/stroke/client/ClientOptions.java b/src/com/isode/stroke/client/ClientOptions.java
index 4144214..b410094 100644
--- a/src/com/isode/stroke/client/ClientOptions.java
+++ b/src/com/isode/stroke/client/ClientOptions.java
@@ -8,6 +8,9 @@
*/
package com.isode.stroke.client;
+
+import com.isode.stroke.tls.TLSOptions;
+
/**
* Options for a client connection
*/
@@ -58,6 +61,11 @@ public class ClientOptions {
public int manualPort;
+ /**
+ * Options passed to the TLS stack
+ */
+ public TLSOptions tlsOptions = new TLSOptions();
+
public enum UseTLS {
NeverUseTLS,
UseTLSWhenAvailable,
diff --git a/src/com/isode/stroke/client/ClientSession.java b/src/com/isode/stroke/client/ClientSession.java
index fe9481d..b8ec4a9 100644
--- a/src/com/isode/stroke/client/ClientSession.java
+++ b/src/com/isode/stroke/client/ClientSession.java
@@ -212,8 +212,8 @@ public class ClientSession {
handleElement(p1);
}
});
- streamClosedConnection = stream.onClosed.connect(new Slot1<SessionStream.Error>(){
- public void call(final SessionStream.Error p1) {
+ streamClosedConnection = stream.onClosed.connect(new Slot1<com.isode.stroke.base.Error>(){
+ public void call(final com.isode.stroke.base.Error p1) {
handleStreamClosed(p1);
}
});
@@ -535,7 +535,7 @@ public class ClientSession {
checkTrustOrFinish(certificateChain, verificationError);
}
else {
- final ServerIdentityVerifier identityVerifier = new ServerIdentityVerifier(localJID);
+ final ServerIdentityVerifier identityVerifier = new ServerIdentityVerifier(localJID, idnConverter);
if (identityVerifier.certificateVerifies(peerCertificate)) {
continueAfterTLSEncrypted();
}
@@ -560,7 +560,7 @@ public class ClientSession {
sendStreamHeader();
}
- private void handleStreamClosed(final SessionStream.Error streamError) {
+ private void handleStreamClosed(final com.isode.stroke.base.Error streamError) {
final State previousState = state;
state = State.Finished;
diff --git a/src/com/isode/stroke/client/CoreClient.java b/src/com/isode/stroke/client/CoreClient.java
index 39229a3..74ba031 100644
--- a/src/com/isode/stroke/client/CoreClient.java
+++ b/src/com/isode/stroke/client/CoreClient.java
@@ -29,6 +29,7 @@ import com.isode.stroke.signals.Slot2;
import com.isode.stroke.tls.CertificateTrustChecker;
import com.isode.stroke.tls.CertificateVerificationError;
import com.isode.stroke.tls.CertificateWithKey;
+import com.isode.stroke.tls.TLSOptions;
/**
* The central class for communicating with an XMPP server.
@@ -246,7 +247,7 @@ public class CoreClient {
connection_ = connection;
assert (sessionStream_ == null);
- sessionStream_ = new BasicSessionStream(StreamType.ClientStreamType, connection_, payloadParserFactories_, payloadSerializers_, networkFactories.getTLSContextFactory(), networkFactories.getTimerFactory());
+ sessionStream_ = new BasicSessionStream(StreamType.ClientStreamType, connection_, payloadParserFactories_, payloadSerializers_, networkFactories.getTLSContextFactory(), networkFactories.getTimerFactory(), options.tlsOptions);
if (certificate_ != null && !certificate_.isNull()) {
sessionStream_.setTLSCertificate(certificate_);
}
@@ -352,8 +353,8 @@ public class CoreClient {
break;
/* Note: no case clause for "StreamError" */
}
- } else if (error instanceof SessionStream.Error) {
- SessionStream.Error actualError = (SessionStream.Error) error;
+ } else if (error instanceof SessionStream.SessionStreamError) {
+ SessionStream.SessionStreamError actualError = (SessionStream.SessionStreamError) error;
switch (actualError.type) {
case ParseError:
clientError = new ClientError(ClientError.Type.XMLError);
@@ -373,7 +374,7 @@ public class CoreClient {
}
} else if (error instanceof CertificateVerificationError) {
CertificateVerificationError verificationError = (CertificateVerificationError)error;
- switch (verificationError.type) {
+ switch (verificationError.getType()) {
case UnknownError:
clientError = new ClientError(ClientError.Type.UnknownCertificateError);
break;