Update of /cvsroot/freenet/freenet/src/freenet/node/rt
In directory sc8-pr-cvs1:/tmp/cvs-serv24411/src/freenet/node/rt

Modified Files:
        NGRoutingTable.java 
Log Message:
NGRouting: when table is less than half full reference anything you can see.


Index: NGRoutingTable.java
===================================================================
RCS file: /cvsroot/freenet/freenet/src/freenet/node/rt/NGRoutingTable.java,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -w -r1.8 -r1.9
--- NGRoutingTable.java 22 Oct 2003 22:07:15 -0000      1.8
+++ NGRoutingTable.java 22 Oct 2003 23:01:13 -0000      1.9
@@ -129,11 +129,19 @@
                                        e.ref = nr;
                        }
                } else {
+                       if(estimators.size() < (maxNodes/2)) {
+                               if(!(nr.noPhysical() || 
!Version.checkGoodVersion(nr.getVersion(), true))) {
+                                       Core.logger.log(this, "Referencing "+nr+" to 
no key out of desperation",
+                                                                       Logger.MINOR);
+                                       reference(null, nr);
+                               } else {
                        if(Core.logger.shouldLog(Logger.DEBUG))
                                Core.logger.log(this, "updateReference("+nr+") did 
nothing",
                                                                Logger.DEBUG);
                }
        }
+               }
+       }
        
     public synchronized void reference(Key k, NodeReference nr) {
                Identity i = nr.getIdentity();
@@ -146,8 +154,13 @@
                        }
                        // New node, estimator centered on k
                        mem = routingStore.putNode(nr);
-                       NodeEstimator e = factory.create(mem, mem.getNodeReference(),
+                       NodeEstimator e;
+                       if(k != null)
+                               e = factory.create(mem, mem.getNodeReference(),
                                                                                       
  k, getFastestRateSeen(), false);
+                       else
+                               e = factory.create(mem, mem.getNodeReference(),
+                                                                  
getFastestRateSeen(), false);
                        mem.setProperty(NGKEY, e);
                        estimators.put(e.ref.getIdentity(), e);
                } else if(nr.supersedes(mem.getNodeReference())) {

_______________________________________________
cvs mailing list
[EMAIL PROTECTED]
http://dodo.freenetproject.org/cgi-bin/mailman/listinfo/cvs

Reply via email to