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

toad at freenetproject.org toad at freenetproject.org
Mon Jun 4 23:16:55 UTC 2007


Author: toad
Date: 2007-06-04 23:16:55 +0000 (Mon, 04 Jun 2007)
New Revision: 13468

Modified:
   trunk/freenet/src/freenet/node/PacketSender.java
Log:
Don't send a notifications only packet if we could have sent a packet with payload!

Modified: trunk/freenet/src/freenet/node/PacketSender.java
===================================================================
--- trunk/freenet/src/freenet/node/PacketSender.java	2007-06-04 23:09:41 UTC (rev 13467)
+++ trunk/freenet/src/freenet/node/PacketSender.java	2007-06-04 23:16:55 UTC (rev 13468)
@@ -198,19 +198,15 @@
                     continue;
                 }
                 
+                boolean mustSend = false;
+                
                 // Any urgent notifications to send?
                 long urgentTime = pn.getNextUrgentTime();
                 // Should spam the logs, unless there is a deadlock
                 if(urgentTime < Long.MAX_VALUE && logMINOR)
                 	Logger.minor(this, "Next urgent time: "+urgentTime+" for "+pn.getPeer());
                 if(urgentTime <= now) {
-                    // Send them
-                    try {
-						pn.sendAnyUrgentNotifications();
-					} catch (PacketSequenceException e) {
-                    	Logger.error(this, "Caught "+e+" - while sending urgent notifications : disconnecting", e);
-                    	pn.forceDisconnect();
-					}
+                	mustSend = true;
                 } else {
                     nextActionTime = Math.min(nextActionTime, urgentTime);
                 }
@@ -231,6 +227,7 @@
                         try {
                             if(logMINOR) Logger.minor(this, "Resending "+item.packetNumber+" to "+item.kt);
                             node.packetMangler.resend(item);
+                            mustSend = false;
                         } catch (KeyChangedException e) {
                             Logger.error(this, "Caught "+e+" resending packets to "+kt);
                             pn.requeueResendItems(rpiTemp);
@@ -274,10 +271,21 @@
                 		}
                 		// Send packets, right now, blocking, including any active notifications
                 		node.packetMangler.processOutgoingOrRequeue(messages, pn, true, false);
+                		mustSend = false;
                 		continue;
                 	}
                 }
                 
+                if(mustSend) {
+                    // Send them
+                    try {
+						pn.sendAnyUrgentNotifications();
+					} catch (PacketSequenceException e) {
+                    	Logger.error(this, "Caught "+e+" - while sending urgent notifications : disconnecting", e);
+                    	pn.forceDisconnect();
+					}
+                }
+                
                 // Need to send a keepalive packet?
                 if(now - pn.lastSentPacketTime() > Node.KEEPALIVE_INTERVAL) {
                 	if(logMINOR) Logger.minor(this, "Sending keepalive");




More information about the cvs mailing list