Author: zothar
Date: 2006-06-23 16:55:56 +0000 (Fri, 23 Jun 2006)
New Revision: 9368
Modified:
trunk/freenet/src/freenet/node/Node.java
trunk/freenet/src/freenet/node/NodeDispatcher.java
Log:
Put the reject reason in the 'rejecting preemptively' log message
Modified: trunk/freenet/src/freenet/node/Node.java
===================================================================
--- trunk/freenet/src/freenet/node/Node.java 2006-06-23 15:44:20 UTC (rev
9367)
+++ trunk/freenet/src/freenet/node/Node.java 2006-06-23 16:55:56 UTC (rev
9368)
@@ -2061,7 +2061,8 @@
long lastCheckedUncontended = -1;
- public synchronized boolean shouldRejectRequest(boolean
canAcceptAnyway) {
+ /* return reject reason as string if should reject, otherwise return null
*/
+ public synchronized String shouldRejectRequest(boolean canAcceptAnyway)
{
long now = System.currentTimeMillis();
if(now - lastCheckedUncontended > 1000) {
@@ -2080,16 +2081,14 @@
if(now - lastAcceptedRequest > MAX_INTERREQUEST_TIME &&
canAcceptAnyway) {
Logger.minor(this, "Accepting request anyway
(take one every 10 secs to keep bwlimitDelayTime updated)");
lastAcceptedRequest = now;
- return false;
+ return null;
}
- Logger.minor( this,
"shouldRejectRequest("+canAcceptAnyway+") == true because >MAX_PING_TIME");
- return true;
+ return ">MAX_PING_TIME";
}
if(pingTime > SUB_MAX_PING_TIME) {
double x = ((double)(pingTime - SUB_MAX_PING_TIME)) /
(MAX_PING_TIME - SUB_MAX_PING_TIME);
if(random.nextDouble() < x) {
- Logger.minor( this, "shouldRejectRequest() ==
true because >SUB_MAX_PING_TIME");
- return true;
+ return ">SUB_MAX_PING_TIME";
}
}
@@ -2101,23 +2100,21 @@
if(now - lastAcceptedRequest > MAX_INTERREQUEST_TIME &&
canAcceptAnyway) {
Logger.minor(this, "Accepting request anyway
(take one every 10 secs to keep bwlimitDelayTime updated)");
lastAcceptedRequest = now;
- return false;
+ return null;
}
- Logger.minor( this, "shouldRejectRequest() == true
because >MAX_THROTTLE_DELAY");
- return true;
+ return ">MAX_THROTTLE_DELAY";
}
if(bwlimitDelayTime > SUB_MAX_THROTTLE_DELAY) {
double x = ((double)(bwlimitDelayTime -
SUB_MAX_THROTTLE_DELAY)) / (MAX_THROTTLE_DELAY - SUB_MAX_THROTTLE_DELAY);
if(random.nextDouble() < x) {
- Logger.minor( this,
"shouldRejectRequest("+canAcceptAnyway+") == true because
>SUB_MAX_THROTTLE_DELAY");
- return true;
+ return ">SUB_MAX_THROTTLE_DELAY";
}
}
Logger.minor(this, "Accepting request");
lastAcceptedRequest = now;
- return false;
+ return null;
}
public SimpleFieldSet exportPrivateFieldSet() {
Modified: trunk/freenet/src/freenet/node/NodeDispatcher.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeDispatcher.java 2006-06-23 15:44:20 UTC
(rev 9367)
+++ trunk/freenet/src/freenet/node/NodeDispatcher.java 2006-06-23 16:55:56 UTC
(rev 9368)
@@ -119,9 +119,10 @@
}
return true;
}
- if(node.shouldRejectRequest(!isSSK)) {
+ String rejectReason = node.shouldRejectRequest(!isSSK);
+ if(rejectReason != null) {
// can accept 1 CHK request every so often, but not with SSKs
because they aren't throttled so won't sort out bwlimitDelayTime, which was the
whole reason for accepting them when overloaded...
- Logger.normal(this, "Rejecting request from
"+m.getSource().getPeer()+" preemptively");
+ Logger.normal(this, "Rejecting request from
"+m.getSource().getPeer()+" preemptively because "+rejectReason);
Message rejected = DMT.createFNPRejectedOverload(id, true);
try {
((PeerNode)(m.getSource())).sendAsync(rejected, null);
@@ -164,8 +165,9 @@
return true;
}
// SSKs don't fix bwlimitDelayTime so shouldn't be accepted when
overloaded.
- if(node.shouldRejectRequest(!isSSK)) {
- Logger.normal(this, "Rejecting insert from
"+m.getSource().getPeer()+" preemptively");
+ String rejectReason = node.shouldRejectRequest(!isSSK);
+ if(rejectReason != null) {
+ Logger.normal(this, "Rejecting insert from
"+m.getSource().getPeer()+" preemptively because "+rejectReason);
Message rejected = DMT.createFNPRejectedOverload(id, true);
try {
((PeerNode)(m.getSource())).sendAsync(rejected, null);