From a78d34ab4bb13c0b541f608ff6031c01d2669499 Mon Sep 17 00:00:00 2001 From: zzz <zzz@mail.i2p> Date: Fri, 18 Oct 2013 18:37:25 +0000 Subject: [PATCH] * I2PTunnel SSL cleanup, log SSL exceptions as errors to help find cert problems --- .../java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java | 9 +++++++++ .../java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java | 4 ++++ core/java/src/net/i2p/util/I2PSSLSocketFactory.java | 2 +- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java index 1e8ea3f620..61007aa8a9 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelHTTPServer.java @@ -19,6 +19,8 @@ import java.util.Map; import java.util.Properties; import java.util.zip.GZIPOutputStream; +import javax.net.ssl.SSLException; + import net.i2p.client.streaming.I2PSocket; import net.i2p.I2PAppContext; import net.i2p.data.ByteArray; @@ -295,6 +297,13 @@ public class I2PTunnelHTTPServer extends I2PTunnelServer { s.run(); // same thread if (_log.shouldLog(Log.INFO)) _log.info("After pumping the compressed response: " + compressedOut.getTotalRead() + "/" + compressedOut.getTotalCompressed()); + } catch (SSLException she) { + _log.error("SSL error", she); + try { + if (browserout == null) + browserout = _browser.getOutputStream(); + browserout.write(ERR_UNAVAILABLE); + } catch (IOException ioe) {} } catch (IOException ioe) { if (_log.shouldLog(Log.WARN)) _log.warn("error compressing", ioe); diff --git a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java index 8822779fce..c3bfea5e7b 100644 --- a/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java +++ b/apps/i2ptunnel/java/src/net/i2p/i2ptunnel/I2PTunnelRunner.java @@ -12,6 +12,8 @@ import java.net.Socket; import java.net.SocketException; import java.util.List; +import javax.net.ssl.SSLException; + import net.i2p.I2PAppContext; import net.i2p.client.streaming.I2PSocket; import net.i2p.data.ByteArray; @@ -199,6 +201,8 @@ public class I2PTunnelRunner extends I2PAppThread implements I2PSocket.SocketErr } catch (InterruptedException ex) { if (_log.shouldLog(Log.ERROR)) _log.error("Interrupted", ex); + } catch (SSLException she) { + _log.error("SSL error", she); } catch (IOException ex) { if (_log.shouldLog(Log.DEBUG)) _log.debug("Error forwarding", ex); diff --git a/core/java/src/net/i2p/util/I2PSSLSocketFactory.java b/core/java/src/net/i2p/util/I2PSSLSocketFactory.java index 0751cdc288..f7f5b26064 100644 --- a/core/java/src/net/i2p/util/I2PSSLSocketFactory.java +++ b/core/java/src/net/i2p/util/I2PSSLSocketFactory.java @@ -54,7 +54,7 @@ public class I2PSSLSocketFactory { * Loads certs from * the ~/.i2p/certificates/ and $I2P/certificates/ directories. */ - private SSLSocketFactory initSSLContext(I2PAppContext context, boolean loadSystemCerts, String relativeCertPath) + private static SSLSocketFactory initSSLContext(I2PAppContext context, boolean loadSystemCerts, String relativeCertPath) throws GeneralSecurityException { Log log = context.logManager().getLog(I2PSSLSocketFactory.class); KeyStore ks; -- GitLab