diff --git a/router/java/src/net/i2p/router/transport/FIFOBandwidthLimiter.java b/router/java/src/net/i2p/router/transport/FIFOBandwidthLimiter.java index 86ba394e4..63bf73653 100644 --- a/router/java/src/net/i2p/router/transport/FIFOBandwidthLimiter.java +++ b/router/java/src/net/i2p/router/transport/FIFOBandwidthLimiter.java @@ -619,8 +619,8 @@ public class FIFOBandwidthLimiter { public void renderStatusHTML(Writer out) throws IOException { long now = now(); StringBuffer buf = new StringBuffer(4096); - buf.append("
Limiter status: ").append(getStatus().toString()).append("
\n"); - buf.append("Pending bandwidth requests:

\n"); out.write(buf.toString()); out.flush(); } diff --git a/router/java/src/net/i2p/router/transport/TransportManager.java b/router/java/src/net/i2p/router/transport/TransportManager.java index 0b7d8d547..813f7aa26 100644 --- a/router/java/src/net/i2p/router/transport/TransportManager.java +++ b/router/java/src/net/i2p/router/transport/TransportManager.java @@ -369,7 +369,7 @@ public class TransportManager implements TransportEventListener { t.renderStatusHTML(out, urlBase, sortFlags); } StringBuffer buf = new StringBuffer(4*1024); - buf.append("Listening on:
\n");
+        buf.append("

Router Transport Addresses:

\n");
         for (int i = 0; i < _transports.size(); i++) {
             Transport t = (Transport)_transports.get(i);
             if (t.getCurrentAddress() != null)
@@ -379,6 +379,8 @@ public class TransportManager implements TransportEventListener {
         }
         buf.append("
\n"); out.write(buf.toString()); + out.write(_upnpManager.renderStatusHTML()); + buf.append("

\n"); out.flush(); } } diff --git a/router/java/src/net/i2p/router/transport/UPnP.java b/router/java/src/net/i2p/router/transport/UPnP.java index aef65adc5..61ce5183b 100644 --- a/router/java/src/net/i2p/router/transport/UPnP.java +++ b/router/java/src/net/i2p/router/transport/UPnP.java @@ -108,11 +108,17 @@ public class UPnP extends ControlPoint implements DeviceChangeListener { DetectedIP result = null; final String natAddress = getNATAddress(); + if (natAddress == null || natAddress.length() <= 0) { + _log.warn("No external address returned"); + return null; + } try { InetAddress detectedIP = InetAddress.getByName(natAddress); + short status = DetectedIP.NOT_SUPPORTED; thinksWeAreDoubleNatted = !TransportImpl.isPubliclyRoutable(detectedIP.getAddress()); // If we have forwarded a port AND we don't have a private address + _log.warn("NATAddress: \"" + natAddress + "\" detectedIP: " + detectedIP + " double? " + thinksWeAreDoubleNatted); if((portsForwarded.size() > 1) && (!thinksWeAreDoubleNatted)) status = DetectedIP.FULL_INTERNET; @@ -291,6 +297,7 @@ public class UPnP extends ControlPoint implements DeviceChangeListener { return Integer.valueOf(getIP.getOutputArgumentList().getArgument("NewDownstreamMaxBitRate").getValue()); } +/*** private void listStateTable(Service serv, StringBuilder sb) { ServiceStateTable table = serv.getServiceStateTable(); sb.append("
"); @@ -320,6 +327,7 @@ public class UPnP extends ControlPoint implements DeviceChangeListener { sb.append("
"); } } +***/ private String toString(String action, String Argument, Service serv) { Action getIP = serv.getAction(action); @@ -333,122 +341,103 @@ public class UPnP extends ControlPoint implements DeviceChangeListener { // TODO: extend it! RTFM private void listSubServices(Device dev, StringBuilder sb) { ServiceList sl = dev.getServiceList(); + if (sl.size() <= 0) + return; + sb.append("