Author: toad
Date: 2007-11-21 15:43:31 +0000 (Wed, 21 Nov 2007)
New Revision: 15905
Modified:
trunk/freenet/src/freenet/clients/http/ConnectivityToadlet.java
trunk/freenet/src/freenet/io/AddressTracker.java
trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
Log:
Show packets by IP also.
Modified: trunk/freenet/src/freenet/clients/http/ConnectivityToadlet.java
===================================================================
--- trunk/freenet/src/freenet/clients/http/ConnectivityToadlet.java
2007-11-21 13:47:38 UTC (rev 15904)
+++ trunk/freenet/src/freenet/clients/http/ConnectivityToadlet.java
2007-11-21 15:43:31 UTC (rev 15905)
@@ -20,6 +20,7 @@
import freenet.client.HighLevelSimpleClient;
import freenet.io.AddressTracker;
+import freenet.io.InetAddressAddressTrackerItem;
import freenet.io.PeerAddressTrackerItem;
import freenet.io.comm.UdpSocketHandler;
import freenet.l10n.L10n;
@@ -70,6 +71,7 @@
String remote = l10n("remote");
for(int i=0;i<handlers.length;i++) {
+ // Peers
HTMLNode portsBox =
pageMaker.getInfobox(L10n.getString("ConnectivityToadlet.byPortTitle", "port",
handlers[i].getName()));
contentNode.addChild(portsBox);
HTMLNode portsContent =
pageMaker.getContentNode(portsBox);
@@ -97,7 +99,35 @@
// Lead in time to first packet received
row.addChild("td",
TimeUtil.formatTime(item.timeFromStartupToFirstReceivedPacket()));
}
- // FIXME IP addresses too
+
+ // IPs
+ portsBox =
pageMaker.getInfobox(L10n.getString("ConnectivityToadlet.byIPTitle", "ip",
handlers[i].getName()));
+ contentNode.addChild(portsBox);
+ portsContent = pageMaker.getContentNode(portsBox);
+ InetAddressAddressTrackerItem[] ipItems =
tracker.getInetAddressTrackerItems();
+ table = portsContent.addChild("table");
+ row = table.addChild("tr");
+ row.addChild("th", l10n("addressTitle"));
+ row.addChild("th", l10n("sentReceivedTitle"));
+ row.addChild("th", l10n("localRemoteTitle"));
+ row.addChild("th", l10n("firstSendLeadTime"));
+ row.addChild("th", l10n("firstReceiveLeadTime"));
+ for(int j=0;j<ipItems.length;j++) {
+ row = table.addChild("tr");
+ InetAddressAddressTrackerItem item = ipItems[j];
+ // Address
+ row.addChild("td", item.addr.toString());
+ // Sent/received packets
+ row.addChild("td", item.packetsSent() + "/ " +
item.packetsReceived());
+ // Initiator: local/remote FIXME something more
graphical e.g. colored cells
+ row.addChild("td", item.packetsReceived() == 0
? noreply :
+ (item.weSentFirst() ? local :
remote));
+ // Lead in time to first packet sent
+ row.addChild("td",
TimeUtil.formatTime(item.timeFromStartupToFirstSentPacket()));
+ // Lead in time to first packet received
+ row.addChild("td",
TimeUtil.formatTime(item.timeFromStartupToFirstReceivedPacket()));
+ }
+
}
writeHTMLReply(ctx, 200, "OK", pageNode.generate());
Modified: trunk/freenet/src/freenet/io/AddressTracker.java
===================================================================
--- trunk/freenet/src/freenet/io/AddressTracker.java 2007-11-21 13:47:38 UTC
(rev 15904)
+++ trunk/freenet/src/freenet/io/AddressTracker.java 2007-11-21 15:43:31 UTC
(rev 15905)
@@ -105,4 +105,9 @@
PeerAddressTrackerItem[] items = new
PeerAddressTrackerItem[peerTrackers.size()];
return (PeerAddressTrackerItem[])
peerTrackers.values().toArray(items);
}
+
+ public synchronized InetAddressAddressTrackerItem[]
getInetAddressTrackerItems() {
+ InetAddressAddressTrackerItem[] items = new
InetAddressAddressTrackerItem[ipTrackers.size()];
+ return (InetAddressAddressTrackerItem[])
ipTrackers.values().toArray(items);
+ }
}
Modified: trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties
===================================================================
--- trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2007-11-21
13:47:38 UTC (rev 15904)
+++ trunk/freenet/src/freenet/l10n/freenet.l10n.en.properties 2007-11-21
15:43:31 UTC (rev 15905)
@@ -87,6 +87,7 @@
ConfigToadlet.true=true
ConfigurablePersister.doesNotExistCannotCreate=File does not exist and cannot
be created
ConfigurablePersister.existsCannotReadWrite=File exists and cannot read/write
it
+ConnectivityToadlet.byIPTitle=Packets for ${ip} by IP address
ConnectivityToadlet.title=Internet connectivity for ${nodeName}
ConnectivityToadlet.connectivity=Internet Connectivity
ConnectivityToadlet.connectivityTitle=Connectivity
@@ -95,7 +96,7 @@
ConnectivityToadlet.localRemoteTitle=Local/remote
ConnectivityToadlet.addressTitle=Address
ConnectivityToadlet.sentReceivedTitle=Sent/received packets
-ConnectivityToadlet.byPortTitle=Packets for ${port}
+ConnectivityToadlet.byPortTitle=Packets for ${port} by port
ConnectivityToadlet.local=LOCAL
ConnectivityToadlet.remote=REMOTE
ConnectivityToadlet.noreply=NO REPLY