From 84e63f3b38aeb19b33497b3f4b2a6fde51937e7a Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 26 Apr 2015 00:12:17 +0000
Subject: [PATCH] reseed tweaks for SNI

---
 .../i2p/router/networkdb/reseed/Reseeder.java | 21 +++++++++++++++++--
 1 file changed, 19 insertions(+), 2 deletions(-)

diff --git a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
index c520894947..05ac03804b 100644
--- a/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
+++ b/router/java/src/net/i2p/router/networkdb/reseed/Reseeder.java
@@ -37,6 +37,7 @@ import net.i2p.util.Log;
 import net.i2p.util.SecureDirectory;
 import net.i2p.util.SecureFileOutputStream;
 import net.i2p.util.SSLEepGet;
+import net.i2p.util.SystemVersion;
 import net.i2p.util.Translate;
 
 /**
@@ -91,10 +92,11 @@ public class Reseeder {
     public static final String DEFAULT_SSL_SEED_URL =
               "https://reseed.i2p-projekt.de/" + "," + // Only HTTPS
               "https://netdb.rows.io:444/" + "," + // Only HTTPS and SU3 (v3) support
-              "https://i2pseed.zarrenspry.info/" + "," + // Only HTTPS and SU3 (v3) support
+              // temp disabled until SNI supported or cert changed
+              //"https://i2pseed.zarrenspry.info/" + "," + // Only HTTPS and SU3 (v3) support
               "https://i2p.mooo.com/netDb/" + "," +
               "https://193.150.121.66/netDb/" + "," +
-              "https://netdb.i2p2.no/" + "," + // Only SU3 (v3) support
+              "https://netdb.i2p2.no/" + "," + // Only SU3 (v3) support, SNI required
               "https://us.reseed.i2p2.no:444/" + "," +
               "https://uk.reseed.i2p2.no:444/" + "," +
               // Down (ticket #1422)
@@ -222,6 +224,16 @@ public class Reseeder {
         }
     }
 
+    /**
+     *  Since Java 7 or Android 2.3 (API 9),
+     *  which is the lowest Android we support anyway.
+     *
+     *  @since 0.9.20
+     */
+    private static boolean isSNISupported() {
+        return SystemVersion.isJava7() || SystemVersion.isAndroid();
+    }
+
     private class ReseedRunner implements Runnable, EepGet.StatusListener {
         private boolean _isRunning;
         private String _proxyHost;
@@ -473,6 +485,11 @@ public class Reseeder {
                     URLList.addAll(nonSSLList);
                 }
             }
+            if (!isSNISupported()) {
+                try {
+                    URLList.remove(new URL("https://netdb.i2p2.no/"));
+                } catch (MalformedURLException mue) {}
+            }
             if (URLList.isEmpty()) {
                 System.out.println("No valid reseed URLs");
                 _checker.setError("No valid reseed URLs");
-- 
GitLab