Console: Add netdb lookup by family

This commit is contained in:
zzz
2016-11-17 14:33:33 +00:00
parent 7a1a1d5b93
commit cd4d5a39bf
4 changed files with 20 additions and 6 deletions

View File

@ -7,6 +7,7 @@ public class NetDbHelper extends HelperBase {
private String _routerPrefix; private String _routerPrefix;
private String _version; private String _version;
private String _country; private String _country;
private String _family;
private int _full; private int _full;
private boolean _lease; private boolean _lease;
private boolean _debug; private boolean _debug;
@ -49,6 +50,12 @@ public class NetDbHelper extends HelperBase {
_country = DataHelper.stripHTML(c); // XSS _country = DataHelper.stripHTML(c); // XSS
} }
/** @since 0.9.28 */
public void setFamily(String c) {
if (c != null)
_family = DataHelper.stripHTML(c); // XSS
}
public void setFull(String f) { public void setFull(String f) {
try { try {
_full = Integer.parseInt(f); _full = Integer.parseInt(f);
@ -75,8 +82,8 @@ public class NetDbHelper extends HelperBase {
NetDbRenderer renderer = new NetDbRenderer(_context); NetDbRenderer renderer = new NetDbRenderer(_context);
try { try {
renderNavBar(); renderNavBar();
if (_routerPrefix != null || _version != null || _country != null) if (_routerPrefix != null || _version != null || _country != null || _family != null)
renderer.renderRouterInfoHTML(_out, _routerPrefix, _version, _country); renderer.renderRouterInfoHTML(_out, _routerPrefix, _version, _country, _family);
else if (_lease) else if (_lease)
renderer.renderLeaseSetHTML(_out, _debug); renderer.renderLeaseSetHTML(_out, _debug);
else if (_full == 3) else if (_full == 3)

View File

@ -85,8 +85,10 @@ class NetDbRenderer {
* @param routerPrefix may be null. "." for our router only * @param routerPrefix may be null. "." for our router only
* @param version may be null * @param version may be null
* @param country may be null * @param country may be null
* @param family may be null
*/ */
public void renderRouterInfoHTML(Writer out, String routerPrefix, String version, String country) throws IOException { public void renderRouterInfoHTML(Writer out, String routerPrefix, String version,
String country, String family) throws IOException {
StringBuilder buf = new StringBuilder(4*1024); StringBuilder buf = new StringBuilder(4*1024);
if (".".equals(routerPrefix)) { if (".".equals(routerPrefix)) {
renderRouterInfo(buf, _context.router().getRouterInfo(), true, true); renderRouterInfo(buf, _context.router().getRouterInfo(), true, true);
@ -97,7 +99,8 @@ class NetDbRenderer {
Hash key = ri.getIdentity().getHash(); Hash key = ri.getIdentity().getHash();
if ((routerPrefix != null && key.toBase64().startsWith(routerPrefix)) || if ((routerPrefix != null && key.toBase64().startsWith(routerPrefix)) ||
(version != null && version.equals(ri.getVersion())) || (version != null && version.equals(ri.getVersion())) ||
(country != null && country.equals(_context.commSystem().getCountry(key)))) { (country != null && country.equals(_context.commSystem().getCountry(key))) ||
(family != null && family.equals(ri.getOption("family")))) {
renderRouterInfo(buf, ri, false, true); renderRouterInfo(buf, ri, false, true);
notFound = false; notFound = false;
} }
@ -110,6 +113,8 @@ class NetDbRenderer {
buf.append(version); buf.append(version);
else if (country != null) else if (country != null)
buf.append(country); buf.append(country);
else if (family != null)
buf.append(_t("Family")).append(' ').append(family);
buf.append(' ').append(_t("not found in network database")); buf.append(' ').append(_t("not found in network database"));
} }
} }

View File

@ -588,8 +588,9 @@ class SybilRenderer {
boolean found = false; boolean found = false;
for (String s : foo) { for (String s : foo) {
int count = oc.count(s); int count = oc.count(s);
buf.append("<p><b>").append(count).append(" floodfills in declared family \"").append(DataHelper.escapeHTML(s) + '"') String ss = DataHelper.escapeHTML(s);
.append("</b></p>"); buf.append("<p><b>").append(count).append(" floodfills in declared family \"<a href=\"/netdb?fam=")
.append(ss).append("\">").append(ss).append("</a>\"</b></p>");
for (RouterInfo info : ris) { for (RouterInfo info : ris) {
String fam = info.getOption("family"); String fam = info.getOption("family");
if (fam == null) if (fam == null)

View File

@ -25,5 +25,6 @@
<jsp:setProperty name="netdbHelper" property="lease" value="<%=request.getParameter(\"l\")%>" /> <jsp:setProperty name="netdbHelper" property="lease" value="<%=request.getParameter(\"l\")%>" />
<jsp:setProperty name="netdbHelper" property="version" value="<%=request.getParameter(\"v\")%>" /> <jsp:setProperty name="netdbHelper" property="version" value="<%=request.getParameter(\"v\")%>" />
<jsp:setProperty name="netdbHelper" property="country" value="<%=request.getParameter(\"c\")%>" /> <jsp:setProperty name="netdbHelper" property="country" value="<%=request.getParameter(\"c\")%>" />
<jsp:setProperty name="netdbHelper" property="family" value="<%=request.getParameter(\"fam\")%>" />
<jsp:getProperty name="netdbHelper" property="netDbSummary" /> <jsp:getProperty name="netdbHelper" property="netDbSummary" />
</div></div></body></html> </div></div></body></html>