diff --git a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java index 9998feaf4..15b3b8660 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/helpers/NetDbHelper.java @@ -222,7 +222,7 @@ public class NetDbHelper extends HelperBase { if (_routerPrefix != null || _version != null || _country != null || _family != null || _caps != null || _ip != null || _sybil != null || _port != 0 || _type != null || _mtu != null || _ipv6 != null || - _ssucaps != null || _cost != 0) + _ssucaps != null || _transport != null || _cost != 0) return 2; if (_full == 2) return 3; @@ -276,7 +276,7 @@ public class NetDbHelper extends HelperBase { * @since 0.9.28 */ private void renderLookupForm() throws IOException { - _out.write("
\n" + + _out.write("\n" + "\n" + "\n" + "\n" + 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 c40acc6e9..71d0f2b9a 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 @@ -173,7 +173,8 @@ class NetDbRenderer { (version != null && version.equals(ri.getVersion())) || (country != null && country.equals(_context.commSystem().getCountry(key))) || (family != null && family.equals(ri.getOption("family"))) || - (caps != null && ri.getCapabilities().contains(caps)) || + // 'O' will catch PO and XO also + (caps != null && hasCap(ri, caps)) || (tr != null && ri.getTargetAddress(tr) != null) || (type != null && type == ri.getIdentity().getSigType())) { if (skipped < toSkip) { @@ -357,6 +358,22 @@ class NetDbRenderer { SybilRenderer.renderSybilHTML(out, _context, sybils, sybil); } + /** + * Special handling for 'O' cap + * @param caps non-null + * @since 0.9.38 + */ + private static boolean hasCap(RouterInfo ri, String caps) { + String ricaps = ri.getCapabilities(); + if (caps.equals("O")) { + return ricaps.contains(caps) && + !ricaps.contains("P") && + !ricaps.contains("X"); + } else { + return ricaps.contains(caps); + } + } + /** * @param debug @since 0.7.14 sort by distance from us, display * median distance, and other stuff, useful when floodfill
Network Database Search
Enter one search field only:
Capabilities:e.g. f or XOfR