Author: toad
Date: 2007-03-29 22:47:48 +0000 (Thu, 29 Mar 2007)
New Revision: 12438

Modified:
   trunk/freenet/src/freenet/node/Node.java
Log:
Bandwidth limit fixes.

Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java    2007-03-29 22:32:13 UTC (rev 
12437)
+++ trunk/freenet/src/freenet/node/Node.java    2007-03-29 22:47:48 UTC (rev 
12438)
@@ -378,6 +378,7 @@
        public static final int EXIT_THROTTLE_FILE_ERROR = 23;
        public static final int EXIT_RESTART_FAILED = 24;
        public static final int EXIT_TEST_ERROR = 25;
+       public static final int EXIT_BAD_BWLIMIT = 26;

        public static final int N2N_MESSAGE_TYPE_FPROXY_USERALERT = 1;
        public static final int N2N_TEXT_MESSAGE_TYPE_USERALERT = 
N2N_MESSAGE_TYPE_FPROXY_USERALERT;  // **FIXME** For backwards-compatibility, 
remove when removing DMT.nodeToNodeTextMessage
@@ -847,7 +848,7 @@
                                                return outputBandwidthLimit;
                                        }
                                        public void set(int obwLimit) throws 
InvalidConfigValueException {
-                                               if(obwLimit <= 0) throw new 
InvalidConfigValueException("Bandwidth limit must be positive");
+                                               if(obwLimit <= 1) throw new 
InvalidConfigValueException("Bandwidth limit must be positive");
                                                synchronized(Node.this) {
                                                        outputBandwidthLimit = 
obwLimit;
                                                }
@@ -857,6 +858,8 @@
                });

                int obwLimit = nodeConfig.getInt("outputBandwidthLimit");
+               if(obwLimit <= 0)
+                       throw new NodeInitException(this.EXIT_BAD_BWLIMIT, 
"Invalid outputBandwidthLimit");
                outputBandwidthLimit = obwLimit;
                outputThrottle = new DoubleTokenBucket(obwLimit/2, 
(1000L*1000L*1000L) /  obwLimit, obwLimit, (obwLimit * 2) / 5);
                obwLimit = (obwLimit * 4) / 5;  // fudge factor; take into 
account non-request activity
@@ -875,7 +878,7 @@
                                                                
inputLimitDefault = true;
                                                                ibwLimit = 
outputBandwidthLimit * 4;
                                                        } else {
-                                                               if(ibwLimit <= 
0) throw new InvalidConfigValueException("Bandwidth limit must be positive or 
-1");
+                                                               if(ibwLimit <= 
1) throw new InvalidConfigValueException("Bandwidth limit must be positive or 
-1");
                                                                
inputLimitDefault = false;
                                                        }
                                                }
@@ -884,15 +887,14 @@
                });

                int ibwLimit = nodeConfig.getInt("inputBandwidthLimit");
+               if(obwLimit <= 0)
+                       throw new NodeInitException(this.EXIT_BAD_BWLIMIT, 
"Invalid inputBandwidthLimit");
                inputBandwidthLimit = ibwLimit;
                if(ibwLimit == -1) {
                        inputLimitDefault = true;
                        ibwLimit = obwLimit * 4;
-               } else {
-                       ibwLimit = ibwLimit * 4 / 5;
                }

-               
                // SwapRequestInterval

                nodeConfig.register("swapRequestSendInterval", 
DEFAULT_SWAP_INTERVAL, sortOrder++, true, false,


Reply via email to