Author: toad
Date: 2008-02-11 19:46:39 +0000 (Mon, 11 Feb 2008)
New Revision: 17785

Modified:
   trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
   trunk/freenet/src/freenet/node/LocationManager.java
   trunk/freenet/src/freenet/node/Node.java
Log:
Enable swapping

Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-02-11 
19:31:22 UTC (rev 17784)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties   2008-02-11 
19:46:39 UTC (rev 17785)
@@ -592,9 +592,11 @@
 Node.dropPacketEvery=Testing packet drop frequency
 Node.dropPacketEveryLong=Frequency of dropping packets. Testing option used by 
devs to simulate packet loss. 0 means never artificially drop a packet. Don't 
touch this!
 Node.enableARKs=Enable ARKs? (DON'T TURN THIS OFF!)
-Node.enableARKsLong=Enable ARKs? (DON'T TURN THIS OFF!)
+Node.enableARKsLong=Enable ARKs? (DON'T TURN THIS OFF!).
 Node.enablePerNodeFailureTables=Enable per-node failure tables?
 Node.enablePerNodeFailureTablesLong=Enable automatically rerouting around 
nodes that failed a request within the last 10 minutes?
+Node.enableSwapping=Enable location swapping? (DO NOT TURN THIS OFF!)
+Node.enableSwappingLong=Enable location swapping? (DO NOT TURN THIS OFF! It is 
only useful in some simulations).
 Node.enableULPRDataPropagation=Enable ULPR data propagation?
 Node.enableULPRDataPropagationLong=Enable fast propagation of recently 
requested keys to those nodes which have asked for them when the data is 
eventually found? (Ultra-Lightweight Persistent Requests). 
 Node.errorApplyingConfig=Error while applying the new config : ${error}

Modified: trunk/freenet/src/freenet/node/LocationManager.java
===================================================================
--- trunk/freenet/src/freenet/node/LocationManager.java 2008-02-11 19:31:22 UTC 
(rev 17784)
+++ trunk/freenet/src/freenet/node/LocationManager.java 2008-02-11 19:46:39 UTC 
(rev 17785)
@@ -117,7 +117,8 @@
      * we are not locked.
      */
     public void startSender() {
-        node.getTicker().queueTimedJob(sender, STARTUP_DELAY);
+       if(node.enableSwapping)
+               node.getTicker().queueTimedJob(sender, STARTUP_DELAY);
     }

     /**
@@ -781,6 +782,16 @@
                htl = SWAP_MAX_HTL;
         }
         htl--;
+        if(!node.enableSwapping) {
+            // Reject
+            Message reject = DMT.createFNPSwapRejected(oldID);
+            try {
+                pn.sendAsync(reject, null, 0, null);
+            } catch (NotConnectedException e1) {
+               if(logMINOR) Logger.minor(this, "Lost connection rejecting 
SwapRequest (locked) from "+pn);
+            }
+            return true;
+        }
         // Either forward it or handle it
         if(htl <= 0) {
                if(logMINOR) Logger.minor(this, "Accepting?... "+oldID);

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2008-02-11 19:31:22 UTC (rev 
17784)
+++ trunk/freenet/src/freenet/node/Node.java    2008-02-11 19:46:39 UTC (rev 
17785)
@@ -397,6 +397,7 @@
        final boolean enableARKs;
        final boolean enablePerNodeFailureTables;
        final boolean enableULPRDataPropagation;
+       final boolean enableSwapping;
        public static final short DEFAULT_MAX_HTL = (short)10;
        private short maxHTL;
        /** Type identifier for fproxy node to node messages, as sent on 
DMT.nodeToNodeMessage's */
@@ -796,6 +797,19 @@
                });
                enableULPRDataPropagation = 
nodeConfig.getBoolean("enableULPRDataPropagation");

+               nodeConfig.register("enableSwapping", true, sortOrder++, true, 
false, "Node.enableSwapping", "Node.enableSwappingLong", new BooleanCallback() {
+                       
+                       public boolean get() {
+                               return enableSwapping;
+                       }
+
+                       public void set(boolean val) throws 
InvalidConfigValueException {
+                               throw new InvalidConfigValueException("Cannot 
change on the fly");
+                       }
+                       
+               });
+               enableSwapping = nodeConfig.getBoolean("enableSwapping");
+               
                // Determine the port number
                // @see #191
                if(oldConfig != null && 
"-1".equals(oldConfig.get("node.listenPort")))


Reply via email to