Author: toad
Date: 2008-03-01 22:54:31 +0000 (Sat, 01 Mar 2008)
New Revision: 18305

Modified:
   trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java
   trunk/freenet/src/freenet/node/FNPPacketMangler.java
   trunk/freenet/src/freenet/node/KeyTracker.java
   trunk/freenet/src/freenet/node/PeerNode.java
   trunk/freenet/src/freenet/node/PeerNodeStatus.java
Log:
Track resent bytes separately for each peer. Display this on the connections 
pages.

Modified: trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java      
2008-03-01 21:32:31 UTC (rev 18304)
+++ trunk/freenet/src/freenet/clients/http/ConnectionsToadlet.java      
2008-03-01 22:54:31 UTC (rev 18305)
@@ -437,7 +437,7 @@

                                if(advancedModeEnabled) {
                                        peerTableHeaderRow.addChild("th", 
"%\u00a0Time Routable");
-                                       peerTableHeaderRow.addChild("th", 
"Total\u00a0Traffic\u00a0(in/out)");
+                                       peerTableHeaderRow.addChild("th", 
"Total\u00a0Traffic\u00a0(in/out/resent)");
                                        peerTableHeaderRow.addChild("th", 
"Congestion\u00a0Control");
                                        peerTableHeaderRow.addChild("th", 
"Time\u00a0Delta");
                                }
@@ -803,7 +803,7 @@
                        // percent of time connected column
                        peerRow.addChild("td", "class", "peer-idle" /* FIXME 
*/).addChild("#", 
fix1.format(peerNodeStatus.getPercentTimeRoutableConnection()));
                        // total traffic column
-                       peerRow.addChild("td", "class", "peer-idle" /* FIXME 
*/).addChild("#", SizeUtil.formatSize(peerNodeStatus.getTotalInputBytes())+" / 
"+SizeUtil.formatSize(peerNodeStatus.getTotalOutputBytes()));
+                       peerRow.addChild("td", "class", "peer-idle" /* FIXME 
*/).addChild("#", SizeUtil.formatSize(peerNodeStatus.getTotalInputBytes())+" / 
"+SizeUtil.formatSize(peerNodeStatus.getTotalOutputBytes())+"/"+SizeUtil.formatSize(peerNodeStatus.getResendBytesSent()));
                        // congestion control
                        PacketThrottle t = peerNodeStatus.getThrottle();
                        String val;

Modified: trunk/freenet/src/freenet/node/FNPPacketMangler.java
===================================================================
--- trunk/freenet/src/freenet/node/FNPPacketMangler.java        2008-03-01 
21:32:31 UTC (rev 18304)
+++ trunk/freenet/src/freenet/node/FNPPacketMangler.java        2008-03-01 
22:54:31 UTC (rev 18305)
@@ -2558,7 +2558,7 @@

        public void resend(ResendPacketItem item) throws 
PacketSequenceException, WouldBlockException, KeyChangedException, 
NotConnectedException {
                processOutgoingPreformatted(item.buf, 0, item.buf.length, 
item.kt, item.packetNumber, item.callbacks, 0, item.priority);
-               node.nodeStats.resendByteCounter.sentBytes(item.buf.length + 
fullHeadersLengthMinimum);
+               item.pn.resendByteCounter.sentBytes(item.buf.length + 
fullHeadersLengthMinimum);
        }

        public int[] supportedNegTypes() {

Modified: trunk/freenet/src/freenet/node/KeyTracker.java
===================================================================
--- trunk/freenet/src/freenet/node/KeyTracker.java      2008-03-01 21:32:31 UTC 
(rev 18304)
+++ trunk/freenet/src/freenet/node/KeyTracker.java      2008-03-01 22:54:31 UTC 
(rev 18305)
@@ -1010,7 +1010,7 @@
             AsyncMessageCallback[] callbacks = element.callbacks;
             // Ignore packet#
             if(logMINOR) Logger.minor(this, "Queueing resend of what was once 
"+element.packetNumber);
-            messages[i] = new MessageItem(buf, callbacks, true, 0, 
pn.node.nodeStats.resendByteCounter, element.priority);
+            messages[i] = new MessageItem(buf, callbacks, true, 0, 
pn.resendByteCounter, element.priority);
         }
         pn.requeueMessageItems(messages, 0, messages.length, true);


Modified: trunk/freenet/src/freenet/node/PeerNode.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNode.java        2008-03-01 21:32:31 UTC 
(rev 18304)
+++ trunk/freenet/src/freenet/node/PeerNode.java        2008-03-01 22:54:31 UTC 
(rev 18305)
@@ -2476,7 +2476,7 @@
                                Logger.error(this, "No tracker to resend packet 
" + item.packetNumber + " on");
                                continue;
                        }
-                       MessageItem mi = new MessageItem(item.buf, 
item.callbacks, true, 0, node.nodeStats.resendByteCounter, item.priority);
+                       MessageItem mi = new MessageItem(item.buf, 
item.callbacks, true, 0, resendByteCounter, item.priority);
                        requeueMessageItems(new MessageItem[]{mi}, 0, 1, true);
                }
        }
@@ -3612,4 +3612,30 @@
        public void reportPing(long t) {
                this.pingAverage.report(t);
        }
+       
+       private long resendBytesSent;
+       
+       public final ByteCounter resendByteCounter = new ByteCounter() {
+
+               public void receivedBytes(int x) {
+                       // Ignore
+               }
+
+               public void sentBytes(int x) {
+                       synchronized(PeerNode.this) {
+                               resendBytesSent += x;
+                       }
+                       node.nodeStats.resendByteCounter.sentBytes(x);
+               }
+
+               public void sentPayload(int x) {
+                       // Ignore
+               }
+               
+       };
+       
+       public long getResendBytesSent() {
+               return resendBytesSent;
+       }
+       
 }

Modified: trunk/freenet/src/freenet/node/PeerNodeStatus.java
===================================================================
--- trunk/freenet/src/freenet/node/PeerNodeStatus.java  2008-03-01 21:32:31 UTC 
(rev 18304)
+++ trunk/freenet/src/freenet/node/PeerNodeStatus.java  2008-03-01 22:54:31 UTC 
(rev 18305)
@@ -87,6 +87,8 @@
        private final boolean isSeedClient;

        private final boolean isSearchable;
+       
+       private final long resendBytesSent;

        PeerNodeStatus(PeerNode peerNode, boolean noHeavy) {
                Peer p = peerNode.getPeer();
@@ -135,6 +137,7 @@
                this.isSeedClient = peerNode instanceof SeedClientPeerNode;
                this.isSeedServer = peerNode instanceof SeedServerPeerNode;
                this.isSearchable = peerNode.isRealConnection();
+               this.resendBytesSent = peerNode.getResendBytesSent();
        }

        /**
@@ -369,4 +372,9 @@
        public boolean isSearchable() {
                return isSearchable;
        }
+       
+       public long getResendBytesSent() {
+               return resendBytesSent;
+       }
+       
 }


Reply via email to