diff --git a/router/java/src/net/i2p/router/CommSystemFacade.java b/router/java/src/net/i2p/router/CommSystemFacade.java
index 2b96255b9..5c704ef87 100644
--- a/router/java/src/net/i2p/router/CommSystemFacade.java
+++ b/router/java/src/net/i2p/router/CommSystemFacade.java
@@ -70,6 +70,7 @@ public abstract class CommSystemFacade implements Service {
*
* @deprecated use getStatus()
*/
+ @Deprecated
public short getReachabilityStatus() { return (short) getStatus().getCode(); }
/**
@@ -81,13 +82,22 @@ public abstract class CommSystemFacade implements Service {
/**
* @deprecated unused
*/
+ @Deprecated
public void recheckReachability() {}
- public boolean isBacklogged(Hash dest) { return false; }
- public boolean wasUnreachable(Hash dest) { return false; }
- public boolean isEstablished(Hash dest) { return false; }
+ public boolean isBacklogged(Hash peer) { return false; }
+ public boolean wasUnreachable(Hash peer) { return false; }
+ public boolean isEstablished(Hash peer) { return false; }
public byte[] getIP(Hash dest) { return null; }
public void queueLookup(byte[] ip) {}
+
+ /**
+ * Tell the comm system that we may disconnect from this peer.
+ * This is advisory only.
+ *
+ * @since 0.9.24
+ */
+ public void mayDisconnect(Hash peer) {}
/** @since 0.8.11 */
public String getOurCountry() { return null; }
diff --git a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
index fbea02990..7c1370222 100644
--- a/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
+++ b/router/java/src/net/i2p/router/transport/CommSystemFacadeImpl.java
@@ -155,23 +155,34 @@ public class CommSystemFacadeImpl extends CommSystemFacade {
}
@Override
- public boolean isBacklogged(Hash dest) {
- return _manager.isBacklogged(dest);
+ public boolean isBacklogged(Hash peer) {
+ return _manager.isBacklogged(peer);
}
@Override
- public boolean isEstablished(Hash dest) {
- return _manager.isEstablished(dest);
+ public boolean isEstablished(Hash peer) {
+ return _manager.isEstablished(peer);
}
@Override
- public boolean wasUnreachable(Hash dest) {
- return _manager.wasUnreachable(dest);
+ public boolean wasUnreachable(Hash peer) {
+ return _manager.wasUnreachable(peer);
}
@Override
- public byte[] getIP(Hash dest) {
- return _manager.getIP(dest);
+ public byte[] getIP(Hash peer) {
+ return _manager.getIP(peer);
+ }
+
+ /**
+ * Tell the comm system that we may disconnect from this peer.
+ * This is advisory only.
+ *
+ * @since 0.9.24
+ */
+ @Override
+ public void mayDisconnect(Hash peer) {
+ _manager.mayDisconnect(peer);
}
@Override
@@ -196,6 +207,7 @@ public class CommSystemFacadeImpl extends CommSystemFacade {
* @deprecated unused
*/
@Override
+ @Deprecated
public void recheckReachability() { _manager.recheckReachability(); }
@Override
diff --git a/router/java/src/net/i2p/router/transport/Transport.java b/router/java/src/net/i2p/router/transport/Transport.java
index a9c03b2ee..41c19211c 100644
--- a/router/java/src/net/i2p/router/transport/Transport.java
+++ b/router/java/src/net/i2p/router/transport/Transport.java
@@ -171,4 +171,12 @@ public interface Transport {
public boolean isUnreachable(Hash peer);
public boolean isEstablished(Hash peer);
+
+ /**
+ * Tell the transport that we may disconnect from this peer.
+ * This is advisory only.
+ *
+ * @since 0.9.24
+ */
+ public void mayDisconnect(Hash peer);
}
diff --git a/router/java/src/net/i2p/router/transport/TransportImpl.java b/router/java/src/net/i2p/router/transport/TransportImpl.java
index 7cea14d43..c284269ef 100644
--- a/router/java/src/net/i2p/router/transport/TransportImpl.java
+++ b/router/java/src/net/i2p/router/transport/TransportImpl.java
@@ -809,6 +809,7 @@ public abstract class TransportImpl implements Transport {
/**
* @deprecated unused
*/
+ @Deprecated
public void recheckReachability() {}
/**
@@ -818,8 +819,16 @@ public abstract class TransportImpl implements Transport {
return TransportUtil.isIPv4Firewalled(_context, getStyle());
}
- public boolean isBacklogged(Hash dest) { return false; }
- public boolean isEstablished(Hash dest) { return false; }
+ public boolean isBacklogged(Hash peer) { return false; }
+ public boolean isEstablished(Hash peer) { return false; }
+
+ /**
+ * Tell the transport that we may disconnect from this peer.
+ * This is advisory only.
+ *
+ * @since 0.9.24
+ */
+ public void mayDisconnect(Hash peer) {}
public boolean isUnreachable(Hash peer) {
long now = _context.clock().now();
diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java
index b49ff1551..80888ead7 100644
--- a/router/java/src/net/i2p/router/transport/TransportManager.java
+++ b/router/java/src/net/i2p/router/transport/TransportManager.java
@@ -407,35 +407,48 @@ public class TransportManager implements TransportEventListener {
/**
* @deprecated unused
*/
+ @Deprecated
public void recheckReachability() {
for (Transport t : _transports.values())
t.recheckReachability();
}
- public boolean isBacklogged(Hash dest) {
+ public boolean isBacklogged(Hash peer) {
for (Transport t : _transports.values()) {
- if (t.isBacklogged(dest))
+ if (t.isBacklogged(peer))
return true;
}
return false;
}
- public boolean isEstablished(Hash dest) {
+ public boolean isEstablished(Hash peer) {
for (Transport t : _transports.values()) {
- if (t.isEstablished(dest))
+ if (t.isEstablished(peer))
return true;
}
return false;
}
+ /**
+ * Tell the transports that we may disconnect from this peer.
+ * This is advisory only.
+ *
+ * @since 0.9.24
+ */
+ public void mayDisconnect(Hash peer) {
+ for (Transport t : _transports.values()) {
+ t.mayDisconnect(peer);
+ }
+ }
+
/**
* Was the peer UNreachable (outbound only) on any transport,
* based on the last time we tried it for each transport?
* This is NOT reset if the peer contacts us.
*/
- public boolean wasUnreachable(Hash dest) {
+ public boolean wasUnreachable(Hash peer) {
for (Transport t : _transports.values()) {
- if (!t.wasUnreachable(dest))
+ if (!t.wasUnreachable(peer))
return false;
}
return true;
@@ -452,8 +465,8 @@ public class TransportManager implements TransportEventListener {
*
* @return IPv4 or IPv6 or null
*/
- public byte[] getIP(Hash dest) {
- return TransportImpl.getIP(dest);
+ public byte[] getIP(Hash peer) {
+ return TransportImpl.getIP(peer);
}
/**
@@ -745,8 +758,8 @@ public class TransportManager implements TransportEventListener {
//"").append(_t("Dev")).append(": ").append(_t("The standard deviation of the round trip time in milliseconds")).append("
\n" +
"RTO: ").append(_t("The retransmit timeout in milliseconds")).append("
\n" +
"MTU: ").append(_t("Current maximum send packet size / estimated maximum receive packet size (bytes)")).append("
\n" +
- "").append(_t("TX")).append(": ").append(_t("The total number of packets sent to the peer")).append("
\n" +
- "").append(_t("RX")).append(": ").append(_t("The total number of packets received from the peer")).append("
\n" +
+ "").append(_t("TX")).append(": ").append(_t("The total number of messages sent to the peer")).append("
\n" +
+ "").append(_t("RX")).append(": ").append(_t("The total number of messages received from the peer")).append("
\n" +
"").append(_t("Dup TX")).append(": ").append(_t("The total number of packets retransmitted to the peer")).append("
\n" +
"").append(_t("Dup RX")).append(": ").append(_t("The total number of duplicate packets received from the peer")).append("