Author: toad
Date: 2008-09-04 18:42:02 +0000 (Thu, 04 Sep 2008)
New Revision: 22431
Modified:
trunk/freenet/src/freenet/io/AddressTracker.java
trunk/freenet/src/freenet/node/PeerNode.java
Log:
Only take isBroken into account if we're not sure.
Modified: trunk/freenet/src/freenet/io/AddressTracker.java
===================================================================
--- trunk/freenet/src/freenet/io/AddressTracker.java 2008-09-04 18:37:35 UTC
(rev 22430)
+++ trunk/freenet/src/freenet/io/AddressTracker.java 2008-09-04 18:42:02 UTC
(rev 22431)
@@ -56,6 +56,7 @@
private long timeDefinitelyNoPacketsSent;
private boolean isBroken;
+ private long brokenTime;
public static AddressTracker create(long lastBootID, File nodeDir, int
port) {
File data = new File(nodeDir, "packets-"+port+".dat");
@@ -230,11 +231,14 @@
public int getPortForwardStatus() {
long minGap = getLongestSendReceiveGap(HORIZON);
- if(isBroken) return DEFINITELY_NATED;
+
if(minGap > DEFINITELY_TUNNEL_LENGTH)
return DEFINITELY_PORT_FORWARDED;
if(minGap > MAYBE_TUNNEL_LENGTH)
return MAYBE_PORT_FORWARDED;
+ // Only take isBroken into account if we're not sure.
+ // Somebody could be playing with us by sending bogus
FNPSentPackets...
+ if(isBroken) return DEFINITELY_NATED;
return DONT_KNOW;
}
@@ -318,5 +322,6 @@
public synchronized void setBroken() {
isBroken = true;
+ brokenTime = System.currentTimeMillis();
}
}
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2008-09-04 18:37:35 UTC
(rev 22430)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2008-09-04 18:42:02 UTC
(rev 22431)
@@ -3701,6 +3701,7 @@
Logger.error(this, "Packets: "+packetHashes.length+"
not found "+notFoundCount+" consecutive not found "+consecutiveNotFound+"
longest consecutive not found "+longestConsecutiveNotFound+" ignored due to
uptime: "+ignoredUptimeCount+" found: "+found);
if(consecutiveNotFound > TRACK_PACKETS / 2) {
manyPacketsClaimedSentNotReceived = true;
+ timeManyPacketsClaimedSentNotReceived = now;
Logger.error(this, "" + consecutiveNotFound + "
consecutive packets not found on " + userToString());
SocketHandler handler =
outgoingMangler.getSocketHandler();
if(handler instanceof
PortForwardSensitiveSocketHandler) {
@@ -3713,6 +3714,8 @@
}
}
private boolean manyPacketsClaimedSentNotReceived = false;
+
+ private long timeManyPacketsClaimedSentNotReceived;
synchronized boolean manyPacketsClaimedSentNotReceived() {
return manyPacketsClaimedSentNotReceived;