diff --git a/briar-core/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java b/briar-core/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java index 7662479d47330f6a3d6b574c1a7f7a8825851d42..c8c396eb505022ea761ff93d41447be045758cab 100644 --- a/briar-core/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java +++ b/briar-core/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java @@ -184,7 +184,7 @@ class LanTcpPlugin extends TcpPlugin { boolean site = addr.isSiteLocalAddress(); if(link || site) { if(LOG.isLoggable(INFO)) - LOG.info("Preferring " + addr.getHostAddress()); + LOG.info("Preferring " + getHostAddress(addr)); return addr; } } @@ -194,7 +194,7 @@ class LanTcpPlugin extends TcpPlugin { for(InetAddress addr : Collections.list(iface.getInetAddresses())) { if(addr.isLoopbackAddress()) continue; if(LOG.isLoggable(INFO)) - LOG.info("Accepting " + addr.getHostAddress()); + LOG.info("Accepting " + getHostAddress(addr)); return addr; } } diff --git a/briar-core/src/net/sf/briar/plugins/tcp/PortMapperImpl.java b/briar-core/src/net/sf/briar/plugins/tcp/PortMapperImpl.java index c5a24dc2e9668ff7f0248e3c8439d1386f3f60fd..2792e591d57cb20e4d35254e5c5b1c5038fed1ad 100644 --- a/briar-core/src/net/sf/briar/plugins/tcp/PortMapperImpl.java +++ b/briar-core/src/net/sf/briar/plugins/tcp/PortMapperImpl.java @@ -35,11 +35,13 @@ class PortMapperImpl implements PortMapper { if(gateway == null) return null; InetAddress internal = gateway.getLocalAddress(); if(internal == null) return null; + if(LOG.isLoggable(INFO)) + LOG.info("Internal address " + getHostAddress(internal)); boolean succeeded = false; InetAddress external = null; try { succeeded = gateway.addPortMapping(port, port, - internal.getHostAddress(), "TCP", "TCP"); + getHostAddress(internal), "TCP", "TCP"); if(succeeded) { shutdownManager.addShutdownHook(new Runnable() { public void run() { @@ -60,6 +62,13 @@ class PortMapperImpl implements PortMapper { return new MappingResult(internal, external, port, succeeded); } + private String getHostAddress(InetAddress a) { + String addr = a.getHostAddress(); + int percent = addr.indexOf('%'); + if(percent == -1) return addr; + return addr.substring(0, percent); + } + private void start() { GatewayDiscover d = new GatewayDiscover(); try { diff --git a/briar-core/src/net/sf/briar/plugins/tcp/TcpPlugin.java b/briar-core/src/net/sf/briar/plugins/tcp/TcpPlugin.java index 77e50e18f8986009cb826306983cbef3be44d9bb..0c6c3b7890f61ab2b32bbf105a299d500d524ee8 100644 --- a/briar-core/src/net/sf/briar/plugins/tcp/TcpPlugin.java +++ b/briar-core/src/net/sf/briar/plugins/tcp/TcpPlugin.java @@ -93,7 +93,7 @@ abstract class TcpPlugin implements DuplexPlugin { } socket = ss; if(LOG.isLoggable(INFO)) { - String addr = ss.getInetAddress().getHostAddress(); + String addr = getHostAddress(ss.getInetAddress()); int port = ss.getLocalPort(); LOG.info("Listening on " + addr + " " + port); } @@ -109,10 +109,16 @@ abstract class TcpPlugin implements DuplexPlugin { } } + protected String getHostAddress(InetAddress a) { + String addr = a.getHostAddress(); + int percent = addr.indexOf('%'); + if(percent == -1) return addr; + return addr.substring(0, percent); + } + protected void setLocalSocketAddress(InetSocketAddress a) { - InetAddress addr = a.getAddress(); TransportProperties p = new TransportProperties(); - p.put("address", addr.getHostAddress()); + p.put("address", getHostAddress(a.getAddress())); p.put("port", String.valueOf(a.getPort())); callback.mergeLocalProperties(p); } diff --git a/briar-core/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java b/briar-core/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java index e5396a4f1bef22a3f5c01de57d46f026cd5770b7..8f4bbb7903d79ab7d87b064b1a3c01712a24a23a 100644 --- a/briar-core/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java +++ b/briar-core/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java @@ -110,7 +110,7 @@ class WanTcpPlugin extends TcpPlugin { a = mappingResult.getExternal(); } TransportProperties p = new TransportProperties(); - p.put("address", a.getAddress().getHostAddress()); + p.put("address", getHostAddress(a.getAddress())); p.put("port", String.valueOf(a.getPort())); callback.mergeLocalProperties(p); }