summaryrefslogtreecommitdiffstats
path: root/jrt
diff options
context:
space:
mode:
authorHenning Baldersheim <balder@yahoo-inc.com>2018-12-03 23:38:33 +0100
committerHenning Baldersheim <balder@yahoo-inc.com>2018-12-03 23:38:33 +0100
commite94b4e87e8d3da98bf689be23dda69f0bcbbf5b7 (patch)
tree5a1a1987770c1e915503dec81a714ede430436df /jrt
parent250d8756d3f40427375b5fe4e9d8e3af1d66e938 (diff)
Close the cryptoengine in order to get to close the tls context.
Diffstat (limited to 'jrt')
-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) {}
}
/**