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));
                }
        }



Reply via email to