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 e28bdb179f..4f4d205b0e 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
@@ -32,6 +32,7 @@ import net.i2p.data.Destination;
import net.i2p.data.Hash;
import net.i2p.data.Lease;
import net.i2p.data.LeaseSet;
+import net.i2p.data.LeaseSet2;
import net.i2p.data.router.RouterAddress;
import net.i2p.data.router.RouterInfo;
import net.i2p.router.RouterContext;
@@ -519,11 +520,21 @@ class NetDbRenderer {
median = dist;
}
buf.append(" Distance: ").append(fmt.format(biLog2(dist)));
- buf.append(" Type: ").append(ls.getType());
+ int type = ls.getType();
+ buf.append(" Type: ").append(type);
+ if (type != DatabaseEntry.KEY_TYPE_LEASESET) {
+ LeaseSet2 ls2 = (LeaseSet2) ls;
+ buf.append(" Unpublished? ").append(ls2.isUnpublished());
+ boolean isOff = ls2.isOffline();
+ buf.append(" Offline signed? ").append(isOff);
+ if (isOff)
+ buf.append(" Type: ").append(ls2.getTransientSigningKey().getType());
+ }
buf.append("\n
");
//buf.append(dest.toBase32()).append(" ");
buf.append("Signature type: ").append(dest.getSigningPublicKey().getType());
- buf.append(" Encryption Key: ").append(ls.getEncryptionKey().toBase64().substring(0, 20)).append("…");
+ if (type != DatabaseEntry.KEY_TYPE_META_LS2)
+ buf.append(" Encryption Key: ").append(ls.getEncryptionKey().toBase64().substring(0, 20)).append("…");
buf.append(" |
\n");
buf.append("Routing Key: ").append(ls.getRoutingKey().toBase64());
buf.append(" |
");
diff --git a/core/java/src/net/i2p/client/impl/I2PSessionImpl.java b/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
index e7ca36871b..f47e05446d 100644
--- a/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
+++ b/core/java/src/net/i2p/client/impl/I2PSessionImpl.java
@@ -209,8 +209,7 @@ public abstract class I2PSessionImpl implements I2PSession, I2CPMessageReader.I2
private static final long MAX_SEND_WAIT = 10*1000;
private static final String MIN_FAST_VERSION = "0.9.4";
-////// TESTING, change to 38 before release
- private static final String MIN_LS2_VERSION = "0.9.37";
+ private static final String MIN_LS2_VERSION = "0.9.38";
/** @param routerVersion as rcvd in the SetDateMessage, may be null for very old routers */
void dateUpdated(String routerVersion) {
diff --git a/core/java/src/net/i2p/data/LeaseSet2.java b/core/java/src/net/i2p/data/LeaseSet2.java
index e65a85f190..7d77299ec5 100644
--- a/core/java/src/net/i2p/data/LeaseSet2.java
+++ b/core/java/src/net/i2p/data/LeaseSet2.java
@@ -120,6 +120,13 @@ public class LeaseSet2 extends LeaseSet {
return (_flags & FLAG_OFFLINE_KEYS) != 0;
}
+ /**
+ * @return transient public key or null if not offline signed
+ */
+ public SigningPublicKey getTransientSigningKey() {
+ return _transientSigningPublicKey;
+ }
+
/**
* Destination must be previously set.
*