diff --git a/router/java/src/net/i2p/router/transport/UPnP.java b/router/java/src/net/i2p/router/transport/UPnP.java index aa75fddfc45f602ccfa9ce4c9776503f8d71f657..4fb885003974fb26111da0251c9bc2e63078b362 100644 --- a/router/java/src/net/i2p/router/transport/UPnP.java +++ b/router/java/src/net/i2p/router/transport/UPnP.java @@ -288,10 +288,15 @@ public class UPnP extends ControlPoint implements DeviceChangeListener, EventLis boolean v61 = ip.contains(":"); boolean v62 = pktIP.contains(":"); if (v61 == v62) { - ignore = true; - if (_log.shouldWarn()) - _log.warn("Ignoring UPnP with IP mismatch: " + name + " UDN: " + udn + - " dev IP " + ip + " pkt IP: " + pktIP); + // canonicalize + byte[] b1 = Addresses.getIP(ip); + byte[] b2 = Addresses.getIP(pktIP); + if (!DataHelper.eq(b1, b2)) { + ignore = true; + if (_log.shouldWarn()) + _log.warn("Ignoring UPnP with IP mismatch: " + name + " UDN: " + udn + + " dev IP " + ip + " pkt IP: " + pktIP); + } } } }