Author: toad
Date: 2008-01-15 12:53:43 +0000 (Tue, 15 Jan 2008)
New Revision: 17055
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/PeerManager.java
trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java
Log:
Pass in to PeerManagerUserAlert: opennet/darknetDefinitelyPortForwarded.
Don't display the too many disconnected warning if we're definitely port
forwarded so the peers aren't costing much bandwidth.
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2008-01-15 12:46:16 UTC (rev
17054)
+++ trunk/freenet/src/freenet/node/Node.java 2008-01-15 12:53:43 UTC (rev
17055)
@@ -48,15 +48,18 @@
import freenet.crypt.RandomSource;
import freenet.crypt.SHA256;
import freenet.crypt.Yarrow;
+import freenet.io.AddressTracker;
import freenet.io.comm.DMT;
import freenet.io.comm.DisconnectedException;
import freenet.io.comm.FreenetInetAddress;
import freenet.io.comm.Message;
import freenet.io.comm.MessageCore;
import freenet.io.comm.MessageFilter;
+import freenet.io.comm.PacketSocketHandler;
import freenet.io.comm.Peer;
import freenet.io.comm.PeerParseException;
import freenet.io.comm.ReferenceSignatureVerificationException;
+import freenet.io.comm.SocketHandler;
import freenet.io.comm.UdpSocketHandler;
import freenet.io.xfer.PartiallyReceivedBlock;
import freenet.keys.CHKBlock;
@@ -2986,4 +2989,23 @@
else
clientCore.alerts.unregister(clockProblemDetectedUserAlert);
}
+
+ public boolean opennetDefinitelyPortForwarded() {
+ OpennetManager om;
+ synchronized(this) {
+ om = this.opennet;
+ }
+ if(om == null) return false;
+ NodeCrypto crypto = om.crypto;
+ if(crypto == null) return false;
+ PacketSocketHandler sock = crypto.socket;
+ if(sock == null) return false;
+ return sock.getDetectedConnectivityStatus() ==
AddressTracker.DEFINITELY_PORT_FORWARDED;
+ }
+
+ public boolean darknetDefinitelyPortForwarded() {
+ PacketSocketHandler sock = darknetCrypto.socket;
+ if(sock == null) return false;
+ return sock.getDetectedConnectivityStatus() ==
AddressTracker.DEFINITELY_PORT_FORWARDED;
+ }
}
Modified: trunk/freenet/src/freenet/node/PeerManager.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerManager.java 2008-01-15 12:46:16 UTC
(rev 17054)
+++ trunk/freenet/src/freenet/node/PeerManager.java 2008-01-15 12:53:43 UTC
(rev 17055)
@@ -961,8 +961,12 @@
opennetPeers = this.getOpennetPeers().length;
peers = darknetPeers + opennetPeers; // Seednodes don't
count.
}
+ boolean opennetDefinitelyPortForwarded =
node.opennetDefinitelyPortForwarded();
+ boolean darknetDefinitelyPortForwarded =
node.darknetDefinitelyPortForwarded();
boolean opennetEnabled = node.isOpennetEnabled();
synchronized(ua) {
+ ua.opennetDefinitelyPortForwarded =
opennetDefinitelyPortForwarded;
+ ua.darknetDefinitelyPortForwarded =
darknetDefinitelyPortForwarded;
ua.darknetConns =
getPeerNodeStatusSize(PEER_NODE_STATUS_CONNECTED, true) +
getPeerNodeStatusSize(PEER_NODE_STATUS_ROUTING_BACKED_OFF, true);
ua.conns =
getPeerNodeStatusSize(PEER_NODE_STATUS_CONNECTED, false) +
Modified: trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java
===================================================================
--- trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java
2008-01-15 12:46:16 UTC (rev 17054)
+++ trunk/freenet/src/freenet/node/useralerts/PeerManagerUserAlert.java
2008-01-15 12:53:43 UTC (rev 17055)
@@ -22,6 +22,8 @@
public int darknetConns = 0;
public int darknetPeers = 0;
public boolean isOpennetEnabled;
+ public boolean darknetDefinitelyPortForwarded;
+ public boolean opennetDefinitelyPortForwarded;
/** How many connected peers we need to not get alert about not enough
*/
public static final int MIN_CONN_ALERT_THRESHOLD = 3;
@@ -67,7 +69,7 @@
return l10n("clockProblemTitle");
if(connError > MIN_CONN_ERROR_ALERT_THRESHOLD)
return l10n("connErrorTitle");
- if(disconnDarknetPeers > MAX_DISCONN_PEER_ALERT_THRESHOLD)
+ if(disconnDarknetPeers > MAX_DISCONN_PEER_ALERT_THRESHOLD &&
!darknetDefinitelyPortForwarded)
return l10n("tooManyDisconnectedTitle");
if(conns > MAX_CONN_ALERT_THRESHOLD)
return l10n("tooManyConnsTitle");
@@ -117,7 +119,7 @@
s = l10n("clockProblem", "count",
Integer.toString(clockProblem));
} else if(connError > MIN_CONN_ERROR_ALERT_THRESHOLD) {
s = l10n("connError", "count",
Integer.toString(connError));
- } else if(disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD){
+ } else if(disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD && !darknetDefinitelyPortForwarded){
s = l10n("tooManyDisconnected", new String[] { "count",
"max" },
new String[] {
Integer.toString(disconnDarknetPeers),
Integer.toString(MAX_DISCONN_PEER_ALERT_THRESHOLD)});
} else if(conns > MAX_CONN_ALERT_THRESHOLD) {
@@ -188,7 +190,7 @@
alertNode.addChild("#", l10n("clockProblem", "count",
Integer.toString(clockProblem)));
} else if(connError > MIN_CONN_ERROR_ALERT_THRESHOLD) {
alertNode.addChild("#", l10n("connError", "count",
Integer.toString(connError)));
- } else if (disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD) {
+ } else if (disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD && !darknetDefinitelyPortForwarded) {
alertNode.addChild("#", l10n("tooManyDisconnected", new
String[] { "count", "max" }, new String[] {
Integer.toString(disconnDarknetPeers),
Integer.toString(MAX_DISCONN_PEER_ALERT_THRESHOLD)}));
} else if (conns > MAX_CONN_ALERT_THRESHOLD) {
alertNode.addChild("#", l10n("tooManyConns", new
String[] { "count", "max" },
@@ -213,7 +215,7 @@
if((peers == 0 && !isOpennetEnabled) ||
(conns == 0 && !isOpennetEnabled) ||
(neverConn >
MAX_NEVER_CONNECTED_PEER_ALERT_THRESHOLD) ||
- (disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD) ||
+ (disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD && !darknetDefinitelyPortForwarded) ||
(conns > MAX_CONN_ALERT_THRESHOLD) ||
(peers > MAX_PEER_ALERT_THRESHOLD) ||
(n.bwlimitDelayAlertRelevant &&
(bwlimitDelayTime > NodeStats.MAX_BWLIMIT_DELAY_TIME_ALERT_THRESHOLD)) ||
@@ -230,7 +232,7 @@
return ((peers == 0 && !isOpennetEnabled) ||
(conns < 3 && !isOpennetEnabled) ||
(neverConn >
MAX_NEVER_CONNECTED_PEER_ALERT_THRESHOLD) ||
- (disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD) ||
+ (disconnDarknetPeers >
MAX_DISCONN_PEER_ALERT_THRESHOLD && !darknetDefinitelyPortForwarded) ||
(conns > MAX_CONN_ALERT_THRESHOLD) ||
(peers > MAX_PEER_ALERT_THRESHOLD) ||
(clockProblem >
MIN_CLOCK_PROBLEM_PEER_ALERT_THRESHOLD) ||