From e2a41b7748b60dab0e3e79f4355e460192acba90 Mon Sep 17 00:00:00 2001
From: zzz <zzz@mail.i2p>
Date: Sun, 7 Oct 2018 14:52:24 +0000
Subject: [PATCH] Console: Sort RAs in Sybil tool

---
 .../src/net/i2p/router/web/helpers/NetDbRenderer.java  |  2 +-
 .../src/net/i2p/router/web/helpers/SybilRenderer.java  | 10 +++++++++-
 2 files changed, 10 insertions(+), 2 deletions(-)

diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java
index 71d0f2b9a6..45153c6c9a 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbRenderer.java
@@ -805,7 +805,7 @@ class NetDbRenderer {
      *  Sort by style, then host
      *  @since 0.9.38
      */
-    private static class RAComparator implements Comparator<RouterAddress> {
+    static class RAComparator implements Comparator<RouterAddress> {
          private static final long serialVersionUID = 1L;
 
          public int compare(RouterAddress l, RouterAddress r) {
diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java
index 2843ffd297..628cc52b6f 100644
--- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java
+++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/SybilRenderer.java
@@ -7,6 +7,7 @@ import java.math.BigInteger;
 import java.text.Collator;
 import java.text.DecimalFormat;
 import java.util.ArrayList;
+import java.util.Collection;
 import java.util.Collections;
 import java.util.Comparator;
 import java.util.Date;
@@ -912,7 +913,14 @@ class SybilRenderer {
            .append(info.getIdentity().getSigningPublicKey().getType().toString()).append("</p>\n");
         buf.append("<p class=\"sybil_filler\">&nbsp;</p>");
         buf.append("</div></td></tr><tr><td class=\"sybil_addresses\" colspan=\"3\"><table><tr><td><b>" + _t("Addresses") + ":</b></td><td>");
-        for (RouterAddress addr : info.getAddresses()) {
+        Collection<RouterAddress> addrs = info.getAddresses();
+        if (addrs.size() > 1) {
+            // addrs is unmodifiable
+            List<RouterAddress> laddrs = new ArrayList<RouterAddress>(addrs);
+            Collections.sort(laddrs, new NetDbRenderer.RAComparator());
+            addrs = laddrs;
+        }
+        for (RouterAddress addr : addrs) {
             String style = addr.getTransportStyle();
             buf.append("<br><b class=\"netdb_transport\">").append(DataHelper.stripHTML(style)).append(":</b> ");
             Map<Object, Object> p = addr.getOptionsMap();
-- 
GitLab