|
|
|
<!DOCTYPE html>
|
|
|
|
<html lang="en">
|
|
|
|
<head>
|
|
|
|
<title>Purple I2P 0.10.0 Webconsole</title>
|
|
|
|
<meta charset="utf-8">
|
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
|
<link rel="stylesheet" href="css/main.css">
|
|
|
|
<script type="text/javascript" src="javascript/I2PControl.js"></script>
|
|
|
|
<script type="text/javascript">
|
|
|
|
|
|
|
|
function buildTable(direction, result) {
|
|
|
|
var table = document.getElementById(direction + "-tunnels").getElementsByTagName("tbody")[0];
|
|
|
|
|
|
|
|
var cmd = "i2p.router.net.tunnels." + direction + ".list";
|
|
|
|
for(id in result[cmd]) {
|
|
|
|
if(!result[cmd].hasOwnProperty(id))
|
|
|
|
continue;
|
|
|
|
var tunnel = result[cmd][id];
|
|
|
|
|
|
|
|
var row = table.insertRow(table.rows.length);
|
|
|
|
row.insertCell(0).appendChild(document.createTextNode(id));
|
|
|
|
row.insertCell(1).appendChild(document.createTextNode(tunnel["state"] ? tunnel["state"] : "running"));
|
|
|
|
row.insertCell(2).appendChild(document.createTextNode(tunnel["layout"]));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
function updateTunnelInfo(result, session) {
|
|
|
|
if(session.error) {
|
|
|
|
alert("Error: " + session.error["message"]);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
buildTable("inbound", result);
|
|
|
|
buildTable("outbound", result);
|
|
|
|
}
|
|
|
|
|
|
|
|
function requestTunnelInfo(session) {
|
|
|
|
session.request("RouterInfo", {
|
|
|
|
"i2p.router.net.tunnels.inbound.list" : "",
|
|
|
|
"i2p.router.net.tunnels.outbound.list" : "",
|
|
|
|
}, updateTunnelInfo);
|
|
|
|
}
|
|
|
|
|
|
|
|
window.onload = function() {
|
|
|
|
var session = new I2PControl.Session("itoopie");
|
|
|
|
session.start(function() { requestTunnelInfo(session); });
|
|
|
|
};
|
|
|
|
</script>
|
|
|
|
</head>
|
|
|
|
|
|
|
|
<body>
|
|
|
|
<div class="header">
|
|
|
|
<h1>i2pd router console</h1>
|
|
|
|
<h2>Tunnel Information</h2>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<div class="content">
|
|
|
|
|
|
|
|
<h2 class="content-subhead">Inbound Tunnels</h2>
|
|
|
|
<table id="inbound-tunnels">
|
|
|
|
<thead>
|
|
|
|
<th>Tunnel ID</th>
|
|
|
|
<th>Status</th>
|
|
|
|
<th>Overview</th>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
<h2 class="content-subhead">Outbound Tunnels</h2>
|
|
|
|
<table id="outbound-tunnels">
|
|
|
|
<thead>
|
|
|
|
<th>Tunnel ID</th>
|
|
|
|
<th>Status</th>
|
|
|
|
<th>Overview</th>
|
|
|
|
</thead>
|
|
|
|
<tbody>
|
|
|
|
</tbody>
|
|
|
|
</table>
|
|
|
|
</div>
|
|
|
|
|
|
|
|
<!--#include virtual="menu.html" -->
|
|
|
|
<!--#include virtual="footer.html" -->
|
|
|
|
|
|
|
|
</body>
|
|
|
|
</html>
|