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;


Reply via email to