[tor-commits] [onionoo/master] Fix nickname search for bridges.

karsten at torproject.org karsten at torproject.org
Thu Jun 14 12:25:43 UTC 2012


commit 04a1db13349344b3d6acd069d4b7f11024adade9
Author: Karsten Loesing <karsten.loesing at gmx.net>
Date:   Thu Jun 14 14:18:26 2012 +0200

    Fix nickname search for bridges.
---
 src/org/torproject/onionoo/ResourceServlet.java |   27 ++++++++++++++++++----
 1 files changed, 22 insertions(+), 5 deletions(-)

diff --git a/src/org/torproject/onionoo/ResourceServlet.java b/src/org/torproject/onionoo/ResourceServlet.java
index e4f5b9f..4f1749d 100644
--- a/src/org/torproject/onionoo/ResourceServlet.java
+++ b/src/org/torproject/onionoo/ResourceServlet.java
@@ -475,7 +475,7 @@ public class ResourceServlet extends HttpServlet {
         /* Nickname matches. */
         lineMatches = true;
       } else if ("unnamed".startsWith(searchTerm.toLowerCase()) &&
-          (line.startsWith("{\"f\":") || line.startsWith("{\"h\":"))) {
+          line.startsWith("{\"f\":")) {
         /* Nickname "Unnamed" matches. */
         lineMatches = true;
       } else if (line.contains("\"f\":\"" + searchTerm.toUpperCase())) {
@@ -494,12 +494,29 @@ public class ResourceServlet extends HttpServlet {
       filteredRelays.remove(fingerprint);
     }
     Set<String> removeBridges = new HashSet<String>();
-    if (searchTerm.startsWith("$")) {
-      searchTerm = searchTerm.substring(1);
-    }
     for (Map.Entry<String, String> e : filteredBridges.entrySet()) {
       String line = e.getValue();
-      if (!line.contains("\"h\":\"" + searchTerm.toUpperCase())) {
+      boolean lineMatches = false;
+      if (searchTerm.startsWith("$")) {
+        /* Search is for $-prefixed hashed fingerprint. */
+        if (line.contains("\"h\":\""
+            + searchTerm.substring(1).toUpperCase())) {
+          /* $-prefixed hashed fingerprint matches. */
+          lineMatches = true;
+        }
+      } else if (line.toLowerCase().contains("\"n\":\""
+          + searchTerm.toLowerCase())) {
+        /* Nickname matches. */
+        lineMatches = true;
+      } else if ("unnamed".startsWith(searchTerm.toLowerCase()) &&
+          line.startsWith("{\"h\":")) {
+        /* Nickname "Unnamed" matches. */
+        lineMatches = true;
+      } else if (line.contains("\"h\":\"" + searchTerm.toUpperCase())) {
+        /* Non-$-prefixed hashed fingerprint matches. */
+        lineMatches = true;
+      }
+      if (!lineMatches) {
         removeBridges.add(e.getKey());
       }
     }





More information about the tor-commits mailing list