points) throws IOException {
+ RouterInfo us = _context.router().getRouterInfo();
+ byte[] ourIP = getIP(us);
+ if (ourIP == null)
+ return;
+ buf.append("Floodfills close to Our IP
");
+ boolean found = false;
+ for (RouterInfo info : ris) {
+ byte[] ip = getIP(info);
+ if (ip == null)
+ continue;
+ if (ip[0] == ourIP[0] && ip[1] == ourIP[1]) {
+ buf.append("");
+ if (ip[2] == ourIP[2]) {
+ if (ip[3] == ourIP[3]) {
+ buf.append("Same IP as us");
+ addPoints(points, info.getHash(), POINTS_US32, "Same IP as us");
+ } else {
+ buf.append("Same /24 as us");
+ addPoints(points, info.getHash(), POINTS_US24, "Same /24 as us");
+ }
+ } else {
+ buf.append("Same /16 as us");
+ addPoints(points, info.getHash(), POINTS_US16, "Same /16 as us");
+ }
+ buf.append(":
");
+ renderRouterInfo(buf, info, null, false, false);
+ found = true;
+ }
+ }
+ if (!found)
+ buf.append("None
");
+ out.write(buf.toString());
+ out.flush();
+ buf.setLength(0);
+ }
+
private void renderIPGroups32(Writer out, StringBuilder buf, List ris, Map points) throws IOException {
buf.append("Floodfills with the Same IP
");
- int sz = ris.size();
ObjectCounter oc = new ObjectCounter();
for (RouterInfo info : ris) {
byte[] ip = getIP(info);
@@ -408,7 +450,6 @@ class SybilRenderer {
private void renderIPGroups24(Writer out, StringBuilder buf, List ris, Map points) throws IOException {
buf.append("Floodfills in the Same /24 (2 minimum)
");
- int sz = ris.size();
ObjectCounter oc = new ObjectCounter();
for (RouterInfo info : ris) {
byte[] ip = getIP(info);
@@ -459,7 +500,6 @@ class SybilRenderer {
private void renderIPGroups16(Writer out, StringBuilder buf, List ris, Map points) throws IOException {
buf.append("Floodfills in the Same /16 (4 minimum)
");
- int sz = ris.size();
ObjectCounter oc = new ObjectCounter();
for (RouterInfo info : ris) {
byte[] ip = getIP(info);
@@ -508,7 +548,6 @@ class SybilRenderer {
private void renderIPGroupsFamily(Writer out, StringBuilder buf, List ris, Map points) throws IOException {
buf.append("Floodfills in the Same Declared Family
");
- int sz = ris.size();
ObjectCounter oc = new ObjectCounter();
for (RouterInfo info : ris) {
String fam = info.getOption("family");
@@ -648,7 +687,7 @@ class SybilRenderer {
buf.append("Caps: ").append(DataHelper.stripHTML(info.getCapabilities())).append("
\n");
String fam = info.getOption("family");
if (fam != null)
- buf.append("Family: ").append(DataHelper.stripHTML(fam)).append("
\n");
+ buf.append("Family: ").append(DataHelper.escapeHTML(fam)).append("
\n");
String kls = info.getOption("netdb.knownLeaseSets");
if (kls != null)
buf.append("Lease Sets: ").append(DataHelper.stripHTML(kls)).append("
\n");
diff --git a/history.txt b/history.txt
index d8679f6e1..dcc1831bf 100644
--- a/history.txt
+++ b/history.txt
@@ -1,3 +1,14 @@
+2015-12-10 zzz
+ * Router:
+ - Change addCapabilities() to getCapabilities()
+ - Add netdb family sign/verify utility (ticket #1510)
+ * RouterInfo:
+ - Remove addCapability() and delCapability()
+ * StatPublisher:
+ - Remove Service interface, not required
+ - Consolidate getCapabilities() and network ID here
+ - Add family signatures
+
2015-12-08 str4d
* Core: Fill in basic datastructure length tests
* Ministreaming: Add unit tests
@@ -5,6 +16,9 @@
- Add more unit tests
- Separate out integration tests
+2015-12-08 zzz
+ * Crypto: Consolidate certificate import methods
+
2015-12-06 zzz
* Console: Don't force profile creation when loading floodfill tab
* Installer: Add wrapper deadlock detection to default wrapper.config
diff --git a/router/java/src/net/i2p/router/RouterVersion.java b/router/java/src/net/i2p/router/RouterVersion.java
index 7ca1a3ec2..5a58b19bc 100644
--- a/router/java/src/net/i2p/router/RouterVersion.java
+++ b/router/java/src/net/i2p/router/RouterVersion.java
@@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */
public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION;
- public final static long BUILD = 10;
+ public final static long BUILD = 11;
/** for example "-test" */
public final static String EXTRA = "";