From 7f3f46c8baa4090afa0a00e2b06a4dab91f3e85a Mon Sep 17 00:00:00 2001 From: zzz Date: Wed, 24 Feb 2021 10:13:37 -0500 Subject: [PATCH] Jetty: Fix detection of SSL connector for registration with PortMapper --- apps/jetty/java/src/net/i2p/jetty/JettyStart.java | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/apps/jetty/java/src/net/i2p/jetty/JettyStart.java b/apps/jetty/java/src/net/i2p/jetty/JettyStart.java index f797cd3b6..2c77a2ef8 100644 --- a/apps/jetty/java/src/net/i2p/jetty/JettyStart.java +++ b/apps/jetty/java/src/net/i2p/jetty/JettyStart.java @@ -38,6 +38,7 @@ import net.i2p.util.VersionComparator; import org.eclipse.jetty.server.AbstractNetworkConnector; import org.eclipse.jetty.server.Connector; +import org.eclipse.jetty.server.ConnectionFactory; import org.eclipse.jetty.server.Server; import org.eclipse.jetty.util.component.LifeCycle; import org.eclipse.jetty.xml.XmlConfiguration; @@ -196,8 +197,16 @@ public class JettyStart implements ClientApp { host = "127.0.0.1"; else if (host.equals("::")) host = "::1"; - // see ConnectionFactory javadoc, but from testing, it ends with /1.1 - boolean isSSL = nconn.getConnectionFactory("SSL-http/1.1") != null; + // at some point this changed from "SSL-http/1.1" to "SSL" and "HTTP/1.1" ? + boolean isSSL = false; + //System.out.println("Found connector: " + nconn); + for (ConnectionFactory fact : nconn.getConnectionFactories()) { + //System.out.println(" Factory: " + fact + " protocol: " + fact.getProtocol()); + if (fact.getProtocol().startsWith("SSL")) { + isSSL = true; + break; + } + } String svc; if (isSSL) { _sslPort = port;