diff options
author | Jon Bratseth <bratseth@oath.com> | 2018-12-03 14:54:58 -0800 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-12-03 14:54:58 -0800 |
commit | 97f154211d3784bbe3467f18e6475c2c548693eb (patch) | |
tree | a9ab16a0488fdf48b66d22adb2db61787d7c2b18 | |
parent | 5a8e39dfd6038a8a4d265a96404bfac1d612dd22 (diff) | |
parent | e94b4e87e8d3da98bf689be23dda69f0bcbbf5b7 (diff) |
Merge pull request #7855 from vespa-engine/balder/close-cryptoengine
Close the cryptoengine in order to get to close the tls context.
-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) {} } /** |