Changeset f129426e


Ignore:
Timestamp:
Feb 28, 2018 3:07:19 PM (2 years ago)
Author:
zzz <zzz@…>
Branches:
master
Children:
5cd1419
Parents:
f3ec5f7
Message:

UPnP: CLI fixes
Check that Location IP matches
Display UDN in HTML output

File:
1 edited

Legend:

Unmodified
Added
Removed
  • router/java/src/net/i2p/router/transport/UPnP.java

    rf3ec5f7 rf129426e  
    3838import org.cybergarage.upnp.device.DeviceChangeListener;
    3939import org.cybergarage.upnp.event.EventListener;
     40import org.cybergarage.upnp.ssdp.SSDPPacket;
     41import org.cybergarage.util.Debug;
    4042import org.freenetproject.DetectedIP;
    4143import org.freenetproject.ForwardPort;
     
    259261                        ignore = true;
    260262                        _log.logAlways(Log.WARN, "Ignoring UPnP on same host: " + name + " UDN: " + udn);
     263                }
     264
     265                // IP check
     266                SSDPPacket pkt = dev.getSSDPPacket();
     267                if (!ignore && pkt != null) {
     268                        String pktIP = pkt.getRemoteAddress();
     269                        if (!stringEquals(ip, pktIP)) {
     270                                ignore = true;
     271                                _log.logAlways(Log.WARN, "Ignoring UPnP with IP mismatch: " + name + " UDN: " + udn);
     272                        }
    261273                }
    262274
     
    752764                        sb.append("<li>").append(_t("Subdevice")).append(": ");
    753765                sb.append(DataHelper.escapeHTML(dev.getFriendlyName()));
    754                 String ip = getIP(dev);
    755                 if (ip != null)
    756                         sb.append(' ').append(ip);
     766                if (prefix == null) {
     767                        String ip = getIP(dev);
     768                        if (ip != null)
     769                                sb.append("<br>IP: ").append(ip);
     770                        String udn = dev.getUDN();
     771                        if (udn != null)
     772                                sb.append("<br>UDN: ").append(DataHelper.escapeHTML(udn));
     773                }
    757774                sb.append("</p>");
    758775                listSubServices(dev, sb);
     
    11931210                props.setProperty(PROP_ADVANCED, "true");
    11941211                I2PAppContext ctx = new I2PAppContext(props);
    1195                 UPnP upnp = new UPnP(ctx);
    1196                 ControlPoint cp = new ControlPoint();
     1212                UPnP cp = new UPnP(ctx);
     1213                org.cybergarage.upnp.UPnP.setEnable(org.cybergarage.upnp.UPnP.USE_ONLY_IPV4_ADDR);
     1214                Debug.initialize(ctx);
     1215                cp.setHTTPPort(49152 + ctx.random().nextInt(5000));
     1216                cp.setSSDPPort(54152 + ctx.random().nextInt(5000));
    11971217                long start = System.currentTimeMillis();
    11981218                cp.start();
     
    12191239                        while(it.hasNext()) {
    12201240                                Device device = it.next();
    1221                                 upnp.listSubDev(device.toString(), device, sb);
     1241                                cp.listSubDev(device.toString(), device, sb);
    12221242                                System.out.println("<h3>Device " + (++i) +
    12231243                                                   ": " + DataHelper.escapeHTML(device.getFriendlyName()) + "</h3>");
Note: See TracChangeset for help on using the changeset viewer.