[freenet-cvs] r16981 - trunk/freenet/src/freenet/node

robert at freenetproject.org robert at freenetproject.org
Wed Jan 9 16:15:48 UTC 2008


Author: robert
Date: 2008-01-09 16:15:47 +0000 (Wed, 09 Jan 2008)
New Revision: 16981

Modified:
   trunk/freenet/src/freenet/node/NodeStats.java
   trunk/freenet/src/freenet/node/PeerNode.java
Log:
factor out getProbableSendQueueTime


Modified: trunk/freenet/src/freenet/node/NodeStats.java
===================================================================
--- trunk/freenet/src/freenet/node/NodeStats.java	2008-01-09 16:08:19 UTC (rev 16980)
+++ trunk/freenet/src/freenet/node/NodeStats.java	2008-01-09 16:15:47 UTC (rev 16981)
@@ -538,12 +538,11 @@
 		}
 
 		if(source != null) {
-			long queuedBytes = source.getMessageQueueLengthBytes();
-			if(queuedBytes > MAX_PEER_QUEUE_BYTES) {
+			if(source.getMessageQueueLengthBytes() > MAX_PEER_QUEUE_BYTES) {
 				rejected(">MAX_PEER_QUEUE_BYTES", isLocal);
 				return "Too many message bytes queued for peer";
 			}
-			if(queuedBytes / (source.getThrottle().getBandwidth()+1.0) > MAX_PEER_QUEUE_TIME) {
+			if(source.getProbableSendQueueTime() > MAX_PEER_QUEUE_TIME) {
 				rejected(">MAX_PEER_QUEUE_TIME", isLocal);
 				return "Peer's queue will take too long to transfer";
 			}

Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java	2008-01-09 16:08:19 UTC (rev 16980)
+++ trunk/freenet/src/freenet/node/PeerNode.java	2008-01-09 16:15:47 UTC (rev 16981)
@@ -998,6 +998,13 @@
 	}
 	
 	/**
+	 * Returns the number of milliseconds that it is estimated to take to transmit the currently queued packets.
+	 */
+	public long getProbableSendQueueTime() {
+		return (long)(getMessageQueueLengthBytes()/(getThrottle().getBandwidth()+1.0));
+	}
+	
+	/**
 	* @return The last time we received a packet.
 	*/
 	public synchronized long lastReceivedPacketTime() {
@@ -1421,7 +1428,7 @@
 	public boolean conditionalSend(Message req, ByteCounter ctr, long timeout) throws NotConnectedException {
 		if (timeout<=0)
 			return false;
-		if (getMessageQueueLengthBytes()/(getThrottle().getBandwidth()+1.0) > timeout) {
+		if (getProbableSendQueueTime() > timeout) {
 			Logger.normal(this, "conditionalSend; pre-emptively not sending message ("+timeout+"ms): "+req);
 			return false;
 		}




More information about the cvs mailing list