* UPnP: main() tweaks for debugging

This commit is contained in:
zzz
2013-07-24 12:38:15 +00:00
parent 803d7ff282
commit 7b4855d7cf
3 changed files with 86 additions and 32 deletions

View File

@@ -1,3 +1,17 @@
2012-07-24 zzz
* GeoIP: Fix lookups, broken in IPv6 branch
* UPnP: main() tweaks for debugging
2012-07-22 zzz
* BuildReplyHandler:
- Make non-static
- Don't pollute Hash cache with build response record hashes
- Use SimpleByteCache
- cleanups
* HashComparator:
- Don't pollute Hash cache with hashes
- cleanups
2012-07-21 zzz
* I2CP:
- Don't NPE when loglevel=warn

View File

@@ -18,7 +18,7 @@ public class RouterVersion {
/** deprecated */
public final static String ID = "Monotone";
public final static String VERSION = CoreVersion.VERSION;
public final static long BUILD = 8;
public final static long BUILD = 9;
/** for example "-test" */
public final static String EXTRA = "";

View File

@@ -11,6 +11,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Iterator;
import java.util.Map;
import java.util.Properties;
import java.util.Set;
import net.i2p.I2PAppContext;
@@ -20,12 +21,16 @@ import net.i2p.util.Log;
import net.i2p.util.Translate;
import org.cybergarage.upnp.Action;
import org.cybergarage.upnp.ActionList;
import org.cybergarage.upnp.Argument;
import org.cybergarage.upnp.ArgumentList;
import org.cybergarage.upnp.ControlPoint;
import org.cybergarage.upnp.Device;
import org.cybergarage.upnp.DeviceList;
import org.cybergarage.upnp.Service;
import org.cybergarage.upnp.ServiceList;
import org.cybergarage.upnp.ServiceStateTable;
import org.cybergarage.upnp.StateVariable;
import org.cybergarage.upnp.UPnPStatus;
import org.cybergarage.upnp.device.DeviceChangeListener;
import org.cybergarage.upnp.event.EventListener;
@@ -85,6 +90,8 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
private final Set<ForwardPort> portsForwarded;
/** Callback to call when a forward fails or succeeds */
private ForwardPortCallback forwardCallback;
private static final String PROP_ADVANCED = "routerconsole.advanced";
public UPnP(I2PAppContext context) {
super();
@@ -385,37 +392,42 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
return Integer.valueOf(getIP.getOutputArgumentList().getArgument("NewDownstreamMaxBitRate").getValue());
}
/***
private void listStateTable(Service serv, StringBuilder sb) {
/** debug only */
private static void listStateTable(Service serv, StringBuilder sb) {
ServiceStateTable table = serv.getServiceStateTable();
sb.append("<div><small>");
sb.append("<ul><small>");
for(int i=0; i<table.size(); i++) {
StateVariable current = table.getStateVariable(i);
sb.append(current.getName() + " : " + current.getValue() + "<br>");
sb.append("<li>" + current.getName() + " : \"" + current.getValue() + "\"</li>");
}
sb.append("</small></div>");
sb.append("</small></ul>");
}
private void listActionsArguments(Action action, StringBuilder sb) {
/** debug only */
private static void listActionsArguments(Action action, StringBuilder sb) {
ArgumentList ar = action.getArgumentList();
sb.append("<ol>");
for(int i=0; i<ar.size(); i++) {
Argument argument = ar.getArgument(i);
if(argument == null ) continue;
sb.append("<div><small>argument ("+i+") :" + argument.getName()+"</small></div>");
sb.append("<li><small>argument : ").append(argument.getName()).append("</small></li>");
}
sb.append("</ol>");
}
private void listActions(Service service, StringBuilder sb) {
/** debug only */
private static void listActions(Service service, StringBuilder sb) {
ActionList al = service.getActionList();
sb.append("<ul>");
for(int i=0; i<al.size(); i++) {
Action action = al.getAction(i);
if(action == null ) continue;
sb.append("<div>action ("+i+") :" + action.getName());
sb.append("<li>").append(action.getName());
listActionsArguments(action, sb);
sb.append("</div>");
sb.append("</li>");
}
sb.append("</ul>");
}
***/
/**
* A blocking toString(). That's interesting.
@@ -457,32 +469,54 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
sb.append("<li>").append(_("Service")).append(": ");
if("urn:schemas-upnp-org:service:WANCommonInterfaceConfig:1".equals(serv.getServiceType())){
sb.append(_("WAN Common Interface Configuration"));
sb.append("<ul><li>").append(_("Status")).append(": " + toString("GetCommonLinkProperties", "NewPhysicalLinkStatus", serv));
sb.append("<li>").append(_("Type")).append(": " + toString("GetCommonLinkProperties", "NewWANAccessType", serv));
sb.append("<li>").append(_("Upstream")).append(": " + toString("GetCommonLinkProperties", "NewLayer1UpstreamMaxBitRate", serv));
sb.append("<li>").append(_("Downstream")).append(": " + toString("GetCommonLinkProperties", "NewLayer1DownstreamMaxBitRate", serv) + "<br>");
sb.append("<ul><li>").append(_("Status")).append(": ")
.append(toString("GetCommonLinkProperties", "NewPhysicalLinkStatus", serv));
sb.append("<li>").append(_("Type")).append(": ")
.append(toString("GetCommonLinkProperties", "NewWANAccessType", serv));
sb.append("<li>").append(_("Upstream")).append(": ")
.append(toString("GetCommonLinkProperties", "NewLayer1UpstreamMaxBitRate", serv));
sb.append("<li>").append(_("Downstream")).append(": ")
.append(toString("GetCommonLinkProperties", "NewLayer1DownstreamMaxBitRate", serv))
.append("</li>");
}else if("urn:schemas-upnp-org:service:WANPPPConnection:1".equals(serv.getServiceType())){
sb.append(_("WAN PPP Connection"));
sb.append("<ul><li>").append(_("Status")).append(": " + toString("GetStatusInfo", "NewConnectionStatus", serv));
sb.append("<li>").append(_("Type")).append(": " + toString("GetConnectionTypeInfo", "NewConnectionType", serv));
sb.append("<li>").append(_("Upstream")).append(": " + toString("GetLinkLayerMaxBitRates", "NewUpstreamMaxBitRate", serv));
sb.append("<li>").append(_("Downstream")).append(": " + toString("GetLinkLayerMaxBitRates", "NewDownstreamMaxBitRate", serv) + "<br>");
sb.append("<li>").append(_("External IP")).append(": " + toString("GetExternalIPAddress", "NewExternalIPAddress", serv) + "<br>");
sb.append("<ul><li>").append(_("Status")).append(": ")
.append(toString("GetStatusInfo", "NewConnectionStatus", serv));
sb.append("<li>").append(_("Type")).append(": ")
.append(toString("GetConnectionTypeInfo", "NewConnectionType", serv));
sb.append("<li>").append(_("Upstream")).append(": ")
.append(toString("GetLinkLayerMaxBitRates", "NewUpstreamMaxBitRate", serv));
sb.append("<li>").append(_("Downstream")).append(": ")
.append(toString("GetLinkLayerMaxBitRates", "NewDownstreamMaxBitRate", serv) + "<br>");
sb.append("<li>").append(_("External IP")).append(": ")
.append(toString("GetExternalIPAddress", "NewExternalIPAddress", serv))
.append("</li>");
}else if("urn:schemas-upnp-org:service:Layer3Forwarding:1".equals(serv.getServiceType())){
sb.append(_("Layer 3 Forwarding"));
sb.append("<ul><li>").append(_("Default Connection Service")).append(": " + toString("GetDefaultConnectionService", "NewDefaultConnectionService", serv));
sb.append("<ul><li>").append(_("Default Connection Service")).append(": ")
.append(toString("GetDefaultConnectionService", "NewDefaultConnectionService", serv))
.append("</li>");
}else if(WAN_IP_CONNECTION.equals(serv.getServiceType())){
sb.append(_("WAN IP Connection"));
sb.append("<ul><li>").append(_("Status")).append(": " + toString("GetStatusInfo", "NewConnectionStatus", serv));
sb.append("<li>").append(_("Type")).append(": " + toString("GetConnectionTypeInfo", "NewConnectionType", serv));
sb.append("<li>").append(_("External IP")).append(": " + toString("GetExternalIPAddress", "NewExternalIPAddress", serv) + "<br>");
sb.append("<li>").append(_("External IP")).append(": ")
.append(toString("GetExternalIPAddress", "NewExternalIPAddress", serv))
.append("</li>");
}else if("urn:schemas-upnp-org:service:WANEthernetLinkConfig:1".equals(serv.getServiceType())){
sb.append(_("WAN Ethernet Link Configuration"));
sb.append("<ul><li>").append(_("Status")).append(": " + toString("GetEthernetLinkStatus", "NewEthernetLinkStatus", serv) + "<br>");
sb.append("<ul><li>").append(_("Status")).append(": ")
.append(toString("GetEthernetLinkStatus", "NewEthernetLinkStatus", serv))
.append("</li>");
}else
sb.append("~~~~~~~ "+serv.getServiceType() + "<ul>");
//listActions(serv, sb);
//listStateTable(serv, sb);
if (_context.getBooleanProperty(PROP_ADVANCED)) {
sb.append("<li>Actions");
listActions(serv, sb);
sb.append("</li><li>States");
listStateTable(serv, sb);
sb.append("</li>");
}
sb.append("</ul>\n");
}
sb.append("</ul>\n");
@@ -885,13 +919,20 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
}
}
/**
* Dumps out device info in semi-HTML format
*/
public static void main(String[] args) throws Exception {
UPnP upnp = new UPnP(I2PAppContext.getGlobalContext());
Properties props = new Properties();
props.setProperty(PROP_ADVANCED, "true");
I2PAppContext ctx = new I2PAppContext(props);
UPnP upnp = new UPnP(ctx);
ControlPoint cp = new ControlPoint();
System.out.println("Searching for up&p devices:");
cp.start();
cp.search();
while(true) {
Thread.sleep(10000);
//while(true) {
DeviceList list = cp.getDeviceList();
System.out.println("Found " + list.size() + " devices!");
StringBuilder sb = new StringBuilder();
@@ -901,11 +942,10 @@ class UPnP extends ControlPoint implements DeviceChangeListener, EventListener {
upnp.listSubDev(device.toString(), device, sb);
System.out.println("Here is the listing for " + device.toString() + " :");
System.out.println(sb.toString());
sb = new StringBuilder();
sb.setLength(0);
}
System.out.println("End");
Thread.sleep(2000);
}
//}
System.exit(0);
}
private static final String BUNDLE_NAME = "net.i2p.router.web.messages";