Author: toad
Date: 2008-11-13 14:23:22 +0000 (Thu, 13 Nov 2008)
New Revision: 23520
Added:
trunk/freenet/src/freenet/node/StillNotAckedException.java
Modified:
trunk/freenet/src/freenet/node/PeerNode.java
Log:
Doh, missing file.
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2008-11-13 14:17:32 UTC
(rev 23519)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2008-11-13 14:23:22 UTC
(rev 23520)
@@ -269,6 +269,14 @@
/** The status of this peer node in terms of Node.PEER_NODE_STATUS_* */
public int peerNodeStatus = PeerManager.PEER_NODE_STATUS_DISCONNECTED;
+ private final ArrayList<KeyTracker> oldTrackers = new
ArrayList<KeyTracker>();
+
+ /**
+ * Enable this if debugging losing KeyTracker's. May cause a memory
leak and
+ * also may cause messages to be received twice.
+ */
+ static final boolean KEEP_OLD_TRACKERS = true;
+
static final int CHECK_FOR_SWAPPED_TRACKERS_INTERVAL =
FNPPacketMangler.SESSION_KEY_REKEYING_INTERVAL / 30;
static final byte[] TEST_AS_BYTES;
@@ -1844,6 +1852,19 @@
KeyTracker prev = null;
MessageItem[] messagesTellDisconnected = null;
synchronized(this) {
+ oldTrackers.add(newTracker);
+ if(currentTracker != null) {
+ if(Arrays.equals(currentTracker.sessionKey,
newTracker.sessionKey))
+ Logger.error(this, "Current tracker has
same session key as new tracker: "+currentTracker+" vs "+newTracker+" for
"+this);
+ }
+ if(previousTracker != null) {
+ if(Arrays.equals(previousTracker.sessionKey,
newTracker.sessionKey))
+ Logger.error(this, "Previous tracker
has same session key as new tracker: "+previousTracker+" vs "+newTracker+" for
"+this);
+ }
+ if(unverifiedTracker != null) {
+ if(Arrays.equals(unverifiedTracker.sessionKey,
newTracker.sessionKey))
+ Logger.error(this, "Previous tracker
has same session key as new tracker: "+unverifiedTracker+" vs "+newTracker+"
for "+this);
+ }
handshakeCount = 0;
bogusNoderef = false;
// Don't reset the uptime if we rekey
@@ -4140,4 +4161,8 @@
return false;
}
+
+ public synchronized KeyTracker[] getOldTrackers() {
+ return oldTrackers.toArray(new KeyTracker[oldTrackers.size()]);
+ }
}
Added: trunk/freenet/src/freenet/node/StillNotAckedException.java
===================================================================
--- trunk/freenet/src/freenet/node/StillNotAckedException.java
(rev 0)
+++ trunk/freenet/src/freenet/node/StillNotAckedException.java 2008-11-13
14:23:22 UTC (rev 23520)
@@ -0,0 +1,15 @@
+/* This code is part of Freenet. It is distributed under the GNU General
+ * Public License, version 2 (or at your option any later version). See
+ * http://www.gnu.org/ for further details of the GPL. */
+package freenet.node;
+
+/**
+ * Thrown when a packet hasn't been acked despite 10 minutes of asking for
+ * an ack. This results in the connection being closed and the packet
+ * which was being sent being killed. We have to throw to avoid locking
+ * issues.
+ * @author Matthew Toseland <[EMAIL PROTECTED]> (0xE43DA450)
+ */
+public class StillNotAckedException extends Exception {
+
+}
_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs