diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2018-12-03 23:38:33 +0100 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2018-12-03 23:38:33 +0100 |
commit | e94b4e87e8d3da98bf689be23dda69f0bcbbf5b7 (patch) | |
tree | 5a1a1987770c1e915503dec81a714ede430436df /jrt/src/com/yahoo | |
parent | 250d8756d3f40427375b5fe4e9d8e3af1d66e938 (diff) |
Close the cryptoengine in order to get to close the tls context.
Diffstat (limited to 'jrt/src/com/yahoo')
-rw-r--r-- | jrt/src/com/yahoo/jrt/CryptoEngine.java | 11 | ||||
-rw-r--r-- | jrt/src/com/yahoo/jrt/MaybeTlsCryptoEngine.java | 5 | ||||
-rw-r--r-- | jrt/src/com/yahoo/jrt/TlsCryptoEngine.java | 4 | ||||
-rw-r--r-- | jrt/src/com/yahoo/jrt/Transport.java | 1 |
4 files changed, 18 insertions, 3 deletions
diff --git a/jrt/src/com/yahoo/jrt/CryptoEngine.java b/jrt/src/com/yahoo/jrt/CryptoEngine.java index b1907d892b6..e620c8cbd34 100644 --- a/jrt/src/com/yahoo/jrt/CryptoEngine.java +++ b/jrt/src/com/yahoo/jrt/CryptoEngine.java @@ -17,9 +17,9 @@ import java.nio.channels.SocketChannel; * used by code wanting to perform network io with appropriate * encryption. **/ -public interface CryptoEngine { - public CryptoSocket createCryptoSocket(SocketChannel channel, boolean isServer); - static public CryptoEngine createDefault() { +public interface CryptoEngine extends AutoCloseable { + CryptoSocket createCryptoSocket(SocketChannel channel, boolean isServer); + static CryptoEngine createDefault() { if (!TransportSecurityUtils.isTransportSecurityEnabled()) { return new NullCryptoEngine(); } @@ -38,4 +38,9 @@ public interface CryptoEngine { throw new IllegalArgumentException(mixedMode.toString()); } } + + @Override + default void close() { + + } } diff --git a/jrt/src/com/yahoo/jrt/MaybeTlsCryptoEngine.java b/jrt/src/com/yahoo/jrt/MaybeTlsCryptoEngine.java index 6664934799c..e4355ae793a 100644 --- a/jrt/src/com/yahoo/jrt/MaybeTlsCryptoEngine.java +++ b/jrt/src/com/yahoo/jrt/MaybeTlsCryptoEngine.java @@ -31,4 +31,9 @@ public class MaybeTlsCryptoEngine implements CryptoEngine { } @Override public String toString() { return "MaybeTlsCryptoEngine(useTlsWhenClient:" + useTlsWhenClient + ")"; } + + @Override + public void close() { + tlsEngine.close(); + } } diff --git a/jrt/src/com/yahoo/jrt/TlsCryptoEngine.java b/jrt/src/com/yahoo/jrt/TlsCryptoEngine.java index f270974f116..56fae08a7ef 100644 --- a/jrt/src/com/yahoo/jrt/TlsCryptoEngine.java +++ b/jrt/src/com/yahoo/jrt/TlsCryptoEngine.java @@ -27,4 +27,8 @@ public class TlsCryptoEngine implements CryptoEngine { return new TlsCryptoSocket(channel, sslEngine); } + @Override + public void close() { + tlsContext.close(); + } } diff --git a/jrt/src/com/yahoo/jrt/Transport.java b/jrt/src/com/yahoo/jrt/Transport.java index f19a9b17ca5..ecad5bfb8a1 100644 --- a/jrt/src/com/yahoo/jrt/Transport.java +++ b/jrt/src/com/yahoo/jrt/Transport.java @@ -380,6 +380,7 @@ public class Transport { try { selector.close(); } catch (Exception e) {} closer.shutdown().join(); connector.exit().join(); + try { cryptoEngine.close(); } catch (Exception e) {} } /** |