Strip interface name from host address if present.

This commit is contained in:
akwizgran
2013-04-07 20:13:37 +01:00
parent 5b37ff3a0e
commit 2de3160c90
4 changed files with 22 additions and 7 deletions

View File

@@ -184,7 +184,7 @@ class LanTcpPlugin extends TcpPlugin {
boolean site = addr.isSiteLocalAddress(); boolean site = addr.isSiteLocalAddress();
if(link || site) { if(link || site) {
if(LOG.isLoggable(INFO)) if(LOG.isLoggable(INFO))
LOG.info("Preferring " + addr.getHostAddress()); LOG.info("Preferring " + getHostAddress(addr));
return addr; return addr;
} }
} }
@@ -194,7 +194,7 @@ class LanTcpPlugin extends TcpPlugin {
for(InetAddress addr : Collections.list(iface.getInetAddresses())) { for(InetAddress addr : Collections.list(iface.getInetAddresses())) {
if(addr.isLoopbackAddress()) continue; if(addr.isLoopbackAddress()) continue;
if(LOG.isLoggable(INFO)) if(LOG.isLoggable(INFO))
LOG.info("Accepting " + addr.getHostAddress()); LOG.info("Accepting " + getHostAddress(addr));
return addr; return addr;
} }
} }

View File

@@ -35,11 +35,13 @@ class PortMapperImpl implements PortMapper {
if(gateway == null) return null; if(gateway == null) return null;
InetAddress internal = gateway.getLocalAddress(); InetAddress internal = gateway.getLocalAddress();
if(internal == null) return null; if(internal == null) return null;
if(LOG.isLoggable(INFO))
LOG.info("Internal address " + getHostAddress(internal));
boolean succeeded = false; boolean succeeded = false;
InetAddress external = null; InetAddress external = null;
try { try {
succeeded = gateway.addPortMapping(port, port, succeeded = gateway.addPortMapping(port, port,
internal.getHostAddress(), "TCP", "TCP"); getHostAddress(internal), "TCP", "TCP");
if(succeeded) { if(succeeded) {
shutdownManager.addShutdownHook(new Runnable() { shutdownManager.addShutdownHook(new Runnable() {
public void run() { public void run() {
@@ -60,6 +62,13 @@ class PortMapperImpl implements PortMapper {
return new MappingResult(internal, external, port, succeeded); 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() { private void start() {
GatewayDiscover d = new GatewayDiscover(); GatewayDiscover d = new GatewayDiscover();
try { try {

View File

@@ -93,7 +93,7 @@ abstract class TcpPlugin implements DuplexPlugin {
} }
socket = ss; socket = ss;
if(LOG.isLoggable(INFO)) { if(LOG.isLoggable(INFO)) {
String addr = ss.getInetAddress().getHostAddress(); String addr = getHostAddress(ss.getInetAddress());
int port = ss.getLocalPort(); int port = ss.getLocalPort();
LOG.info("Listening on " + addr + " " + port); 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) { protected void setLocalSocketAddress(InetSocketAddress a) {
InetAddress addr = a.getAddress();
TransportProperties p = new TransportProperties(); TransportProperties p = new TransportProperties();
p.put("address", addr.getHostAddress()); p.put("address", getHostAddress(a.getAddress()));
p.put("port", String.valueOf(a.getPort())); p.put("port", String.valueOf(a.getPort()));
callback.mergeLocalProperties(p); callback.mergeLocalProperties(p);
} }

View File

@@ -110,7 +110,7 @@ class WanTcpPlugin extends TcpPlugin {
a = mappingResult.getExternal(); a = mappingResult.getExternal();
} }
TransportProperties p = new TransportProperties(); TransportProperties p = new TransportProperties();
p.put("address", a.getAddress().getHostAddress()); p.put("address", getHostAddress(a.getAddress()));
p.put("port", String.valueOf(a.getPort())); p.put("port", String.valueOf(a.getPort()));
callback.mergeLocalProperties(p); callback.mergeLocalProperties(p);
} }