summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@oath.com>2018-12-03 14:54:58 -0800
committerGitHub <noreply@github.com>2018-12-03 14:54:58 -0800
commit97f154211d3784bbe3467f18e6475c2c548693eb (patch)
treea9ab16a0488fdf48b66d22adb2db61787d7c2b18
parent5a8e39dfd6038a8a4d265a96404bfac1d612dd22 (diff)
parente94b4e87e8d3da98bf689be23dda69f0bcbbf5b7 (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.java11
-rw-r--r--jrt/src/com/yahoo/jrt/MaybeTlsCryptoEngine.java5
-rw-r--r--jrt/src/com/yahoo/jrt/TlsCryptoEngine.java4
-rw-r--r--jrt/src/com/yahoo/jrt/Transport.java1
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) {}
}
/**