Author: toad
Date: 2008-12-05 13:42:13 +0000 (Fri, 05 Dec 2008)
New Revision: 24063

Modified:
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/OpennetManager.java
   trunk/freenet/src/freenet/node/RequestHandler.java
Log:
We were sending offers very infrequently because every time we had an 
unmatchable packet that might be from an old-opennet-peer, we would treat the 
decision as to whether to process it as sending an offer! This also meant that 
we hardly ever process any old-opennet-peer packets...


Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2008-12-05 
09:31:18 UTC (rev 24062)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2008-12-05 
13:42:13 UTC (rev 24063)
@@ -303,7 +303,7 @@
                OpennetManager opennet = node.getOpennet();
                if(opennet != null) {
                        // Try old opennet connections.
-                       if(opennet.wantPeer(null, false)) {
+                       if(opennet.wantPeer(null, false, true)) {
                                // We want a peer.
                                // Try old connections.
                                PeerNode[] oldPeers = opennet.getOldPeers();
@@ -1189,7 +1189,7 @@
                                Logger.normal(this, "Dumping incoming 
old-opennet peer as opennet just turned off: "+pn+".");
                                return;
                        }
-                       if(!opennet.wantPeer(pn, true)) {
+                       if(!opennet.wantPeer(pn, true, false)) {
                                Logger.normal(this, "No longer want peer "+pn+" 
- dumping it after connecting");
                                dontWant = true;
                        }
@@ -1382,7 +1382,7 @@
                                Logger.normal(this, "Dumping incoming 
old-opennet peer as opennet just turned off: "+pn+".");
                                return true;
                        }
-                       if(!opennet.wantPeer(pn, true)) {
+                       if(!opennet.wantPeer(pn, true, false)) {
                                Logger.normal(this, "No longer want peer "+pn+" 
- dumping it after connecting");
                                dontWant = true;
                        }

Modified: trunk/freenet/src/freenet/node/OpennetManager.java
===================================================================
--- trunk/freenet/src/freenet/node/OpennetManager.java  2008-12-05 09:31:18 UTC 
(rev 24062)
+++ trunk/freenet/src/freenet/node/OpennetManager.java  2008-12-05 13:42:13 UTC 
(rev 24063)
@@ -246,7 +246,7 @@
                        if(logMINOR) Logger.minor(this, "Not adding 
"+pn.userToString()+" to opennet list as already there");
                        return null;
                }
-               if(wantPeer(pn, true)) return pn;
+               if(wantPeer(pn, true, false)) return pn;
                else return null;
                // Start at bottom. Node must prove itself.
        }
@@ -273,9 +273,11 @@
         * @param addAtLRU If there is a node to add, add it at the bottom 
rather than the top. Normally
         * we set this on new path folded nodes so that they will be replaced 
if during the trial period,
         * plus the time it takes to get a new path folding offer, they don't 
have a successful request.
+        * @param notSendingOffer If true, and nodeToAddNow == null, we don't 
actually send an offer, we
+        * just want to know if there is space for a node.
         * @return True if the node was added / should be added.
         */
-       public boolean wantPeer(PeerNode nodeToAddNow, boolean addAtLRU) {
+       public boolean wantPeer(PeerNode nodeToAddNow, boolean addAtLRU, 
boolean notSendingOffer) {
                boolean notMany = false;
                boolean noDisconnect;
                synchronized(this) {
@@ -296,7 +298,8 @@
                                } else {
                                        if(logMINOR) Logger.minor(this, "Want 
peer because not enough opennet nodes");
                                }
-                               timeLastOffered = System.currentTimeMillis();
+                               if(nodeToAddNow != null || !notSendingOffer)
+                                       timeLastOffered = 
System.currentTimeMillis();
                                notMany = true;
                        }
                        noDisconnect = successCount < 
MIN_SUCCESS_BETWEEN_DROP_CONNS;
@@ -354,9 +357,11 @@
                                        } else {
                                                if(!dropList.isEmpty())
                                                        timeLastDropped = now;
-                                               timeLastOffered = now;
-                                               if(logMINOR)
-                                                       Logger.minor(this, 
"Sending offer");
+                                               if(!notSendingOffer) {
+                                                       timeLastOffered = now;
+                                                       if(logMINOR)
+                                                               
Logger.minor(this, "Sending offer");
+                                               }
                                        }
                                }
                        }
@@ -434,7 +439,7 @@
                                // Re-add it: nasty race condition when we have 
few peers
                        }
                }
-               if(!wantPeer(pn, false)) // Start at top as it just succeeded
+               if(!wantPeer(pn, false, false)) // Start at top as it just 
succeeded
                        node.peers.disconnect(pn, true, false);
        }
 

Modified: trunk/freenet/src/freenet/node/RequestHandler.java
===================================================================
--- trunk/freenet/src/freenet/node/RequestHandler.java  2008-12-05 09:31:18 UTC 
(rev 24062)
+++ trunk/freenet/src/freenet/node/RequestHandler.java  2008-12-05 13:42:13 UTC 
(rev 24063)
@@ -558,7 +558,7 @@
        private boolean finishOpennetNoRelayInner(OpennetManager om) {
                if(logMINOR)
                        Logger.minor(this, "Finishing opennet: sending own 
reference");
-               if(!om.wantPeer(null, false))
+               if(!om.wantPeer(null, false, false))
                        return false; // Don't want a reference
 
                try {

_______________________________________________
cvs mailing list
[email protected]
http://emu.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to