diff options
author | Tobias Markmann <tm@ayena.de> | 2018-02-19 14:22:19 (GMT) |
---|---|---|
committer | Tobias Markmann <tm@ayena.de> | 2018-02-21 13:46:30 (GMT) |
commit | 5eed7fcd3c8d42837a013855114deb6cdcaf47d0 (patch) | |
tree | 3fe4373a89be286541449fafd20d4069dff24866 /Swiften/TLS/TLSContext.h | |
parent | cc1d97fc393c4d6fd3c9ecacd35b3683a10de356 (diff) | |
download | swift-5eed7fcd3c8d42837a013855114deb6cdcaf47d0.zip swift-5eed7fcd3c8d42837a013855114deb6cdcaf47d0.tar.bz2 |
Add support for Server Name Indication to OpenSSLContext
Test-Information:
Builds and unit tests pass on macOS 10.13.3 with OpenSSL TLS
backend.
Change-Id: Ie8f4578c867a2e4bf84484cde4a7cff048566ca4
Diffstat (limited to 'Swiften/TLS/TLSContext.h')
-rw-r--r-- | Swiften/TLS/TLSContext.h | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/Swiften/TLS/TLSContext.h b/Swiften/TLS/TLSContext.h index 816f1c1..2655d4b 100644 --- a/Swiften/TLS/TLSContext.h +++ b/Swiften/TLS/TLSContext.h @@ -26,12 +26,19 @@ namespace Swift { virtual void accept(); virtual void connect() = 0; + virtual void connect(const std::string& serverName); virtual bool setCertificateChain(const std::vector<Certificate::ref>& /* certificateChain */); virtual bool setPrivateKey(const PrivateKey::ref& /* privateKey */); virtual bool setClientCertificate(CertificateWithKey::ref cert) = 0; + /** + * This method can be used during the \ref onServerNameRequested signal, + * to report an error about an unknown host back to the requesting client. + */ + virtual void setAbortTLSHandshake(bool /* abort */); + virtual void handleDataFromNetwork(const SafeByteArray&) = 0; virtual void handleDataFromApplication(const SafeByteArray&) = 0; @@ -52,5 +59,6 @@ namespace Swift { boost::signals2::signal<void (const SafeByteArray&)> onDataForApplication; boost::signals2::signal<void (std::shared_ptr<TLSError>)> onError; boost::signals2::signal<void ()> onConnected; + boost::signals2::signal<void (const std::string&)> onServerNameRequested; }; } |