forked from I2P_Developers/i2p.i2p
* UPnP: main() tweaks for debugging
This commit is contained in:
14
history.txt
14
history.txt
@@ -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
|
||||
|
||||
@@ -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 = "";
|
||||
|
||||
@@ -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";
|
||||
|
||||
Reference in New Issue
Block a user