From 1f088ff3e58746f9d4777ab9537096b8fcf2f9be Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Tue, 1 Mar 2016 13:42:03 +0000
Subject: [PATCH] NetDb: Look in all SSU addresses for introducers in the
 expiration check

---
 router/java/src/net/i2p/data/router/RouterInfo.java          | 2 +-
 .../networkdb/kademlia/KademliaNetworkDatabaseFacade.java    | 5 ++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/router/java/src/net/i2p/data/router/RouterInfo.java b/router/java/src/net/i2p/data/router/RouterInfo.java
index bc96fa853c..de33402f2a 100644
--- a/router/java/src/net/i2p/data/router/RouterInfo.java
+++ b/router/java/src/net/i2p/data/router/RouterInfo.java
@@ -187,7 +187,7 @@ public class RouterInfo extends DatabaseEntry {
      * @return unmodifiable view, non-null
      */
     public Collection<RouterAddress> getAddresses() {
-            return Collections.unmodifiableCollection(_addresses);
+            return Collections.unmodifiableList(_addresses);
     }
 
     /**
diff --git a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
index ea6e32158a..2e2152ceac 100644
--- a/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
+++ b/router/java/src/net/i2p/router/networkdb/kademlia/KademliaNetworkDatabaseFacade.java
@@ -984,9 +984,8 @@ public class KademliaNetworkDatabaseFacade extends NetworkDatabaseFacade {
             // And even better, catches the case where the router is unreachable but knows no introducers
             if (routerInfo.getCapabilities().indexOf(Router.CAPABILITY_UNREACHABLE) >= 0)
                 return "Old peer and thinks it is unreachable";
-            // FIXME check all SSU addresses, not just first
-            RouterAddress ra = routerInfo.getTargetAddress("SSU");
-            if (ra != null) {
+            // Just check all the addresses, faster than getting just the SSU ones
+            for (RouterAddress ra : routerInfo.getAddresses()) {
                 // Introducers change often, introducee will ping introducer for 2 hours
                 if (ra.getOption("ihost0") != null)
                     return "Old peer with SSU Introducers";
-- 
GitLab