Author: toad
Date: 2008-02-04 23:23:12 +0000 (Mon, 04 Feb 2008)
New Revision: 17526

Modified:
   trunk/freenet/src/freenet/node/NodeDispatcher.java
Log:
Add nodes as requestors even if we RejectedOverload on them.

Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java  2008-02-04 23:19:31 UTC 
(rev 17525)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java  2008-02-04 23:23:12 UTC 
(rev 17526)
@@ -276,6 +276,8 @@
                        }
                        return true;
                }
+        short htl = m.getShort(DMT.HTL);
+        Key key = (Key) m.getObject(DMT.FREENET_ROUTING_KEY);
                if(!node.lockUID(id, isSSK, false, false)) {
                        if(logMINOR) Logger.minor(this, "Could not lock ID 
"+id+" -> rejecting (already running)");
                        Message rejected = DMT.createFNPRejectedLoop(id);
@@ -284,6 +286,7 @@
                        } catch (NotConnectedException e) {
                                Logger.normal(this, "Rejecting insert request 
from "+source.getPeer()+": "+e);
                        }
+                       node.failureTable.onFailure(key, htl, new PeerNode[] { 
source }, null, -1, System.currentTimeMillis());
                        return true;
                } else {
                        if(logMINOR) Logger.minor(this, "Locked "+id);
@@ -299,10 +302,11 @@
                                Logger.normal(this, "Rejecting (overload) data 
request from "+source.getPeer()+": "+e);
                        }
                        node.unlockUID(id, isSSK, false, false, false);
+                       node.failureTable.onFailure(key, htl, new PeerNode[] { 
source }, null, -1, System.currentTimeMillis());
                        return true;
                }
                //if(!node.lockUID(id)) return false;
-               RequestHandler rh = new RequestHandler(m, source, id, node);
+               RequestHandler rh = new RequestHandler(m, source, id, node, 
htl, key);
                node.executor.execute(rh, "RequestHandler for UID "+id);
                return true;
        }


Reply via email to