diff options
Diffstat (limited to 'src/com/isode/stroke/client')
-rw-r--r-- | src/com/isode/stroke/client/ClientOptions.java | 8 | ||||
-rw-r--r-- | src/com/isode/stroke/client/ClientSession.java | 8 | ||||
-rw-r--r-- | src/com/isode/stroke/client/CoreClient.java | 9 |
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; |