Author: toad
Date: 2006-11-28 19:02:27 +0000 (Tue, 28 Nov 2006)
New Revision: 11092
Modified:
trunk/freenet/src/freenet/node/PeerNode.java
Log:
Use a HashSet instead of a Vector. Don't duplicate every message when we try to
send a message but the connection is closed. May fix the N2NTM flood bug.
Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java 2006-11-28 18:17:05 UTC
(rev 11091)
+++ trunk/freenet/src/freenet/node/PeerNode.java 2006-11-28 19:02:27 UTC
(rev 11092)
@@ -17,6 +17,7 @@
import java.net.UnknownHostException;
import java.security.MessageDigest;
import java.util.Arrays;
+import java.util.HashSet;
import java.util.Hashtable;
import java.util.Iterator;
import java.util.LinkedList;
@@ -299,7 +300,7 @@
private int privateDarknetCommentFileNumber;
/** Queued-to-send N2NTM extra peer data file numbers */
- private Vector queuedToSendN2NTMExtraPeerDataFileNumbers;
+ private HashSet queuedToSendN2NTMExtraPeerDataFileNumbers;
/** Total low-level input bytes */
private long totalBytesIn;
@@ -621,8 +622,7 @@
extraPeerDataFileNumbers.removeAllElements();
// Setup the queuedToSendN2NTMExtraPeerDataFileNumbers
- queuedToSendN2NTMExtraPeerDataFileNumbers = new Vector();
- queuedToSendN2NTMExtraPeerDataFileNumbers.removeAllElements();
+ queuedToSendN2NTMExtraPeerDataFileNumbers = new HashSet();
}
private boolean parseARK(SimpleFieldSet fs, boolean onStartup) {
@@ -2690,9 +2690,7 @@
Logger.normal(this, "Sent queued
("+fileNumber+") N2NTM to '"+getName()+"': "+text);
sendSuccess = true;
synchronized(queuedToSendN2NTMExtraPeerDataFileNumbers) {
-
if(queuedToSendN2NTMExtraPeerDataFileNumbers.contains(new Integer(fileNumber)))
{
-
queuedToSendN2NTMExtraPeerDataFileNumbers.removeElement(new
Integer(fileNumber));
- }
+
queuedToSendN2NTMExtraPeerDataFileNumbers.remove(new Integer(fileNumber));
}
deleteExtraPeerDataFile(fileNumber);
} catch (NotConnectedException e) {
@@ -2701,7 +2699,7 @@
}
if(!sendSuccess) {
synchronized(queuedToSendN2NTMExtraPeerDataFileNumbers) {
-
queuedToSendN2NTMExtraPeerDataFileNumbers.addElement(new Integer(fileNumber));
+
queuedToSendN2NTMExtraPeerDataFileNumbers.add(new Integer(fileNumber));
}
}
return true;
@@ -2882,7 +2880,7 @@
public void queueN2NTM(SimpleFieldSet fs) {
int fileNumber = writeNewExtraPeerDataFile( fs,
Node.EXTRA_PEER_DATA_TYPE_QUEUED_TO_SEND_N2NTM);
synchronized(queuedToSendN2NTMExtraPeerDataFileNumbers) {
-
queuedToSendN2NTMExtraPeerDataFileNumbers.addElement(new Integer(fileNumber));
+ queuedToSendN2NTMExtraPeerDataFileNumbers.add(new
Integer(fileNumber));
}
}