From 8c4ba716ff8dae2a27f0ece46a4a98ed0a03850a Mon Sep 17 00:00:00 2001
From: akwizgran <michael@briarproject.org>
Date: Sun, 7 Apr 2013 20:38:49 +0100
Subject: [PATCH] Temporarily disabled IPv6 support.

Some devices don't support IPv6, so we'll need to bind separate IPv4 and
IPv6 sockets and advertise both addresses.
---
 briar-core/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java | 3 +++
 briar-core/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java | 8 ++++++--
 2 files changed, 9 insertions(+), 2 deletions(-)

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 c8c396eb50..ec24848063 100644
--- a/briar-core/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java
+++ b/briar-core/src/net/sf/briar/plugins/tcp/LanTcpPlugin.java
@@ -5,6 +5,7 @@ import static java.util.logging.Level.WARNING;
 
 import java.io.IOException;
 import java.net.DatagramPacket;
+import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.MulticastSocket;
@@ -91,6 +92,7 @@ class LanTcpPlugin extends TcpPlugin {
 		for(NetworkInterface iface : ifaces) {
 			for(InetAddress a : Collections.list(iface.getInetAddresses())) {
 				if(addr != null && a.equals(addr)) continue;
+				if(a instanceof Inet6Address) continue;
 				if(a.isLoopbackAddress()) continue;
 				boolean link = a.isLinkLocalAddress();
 				boolean site = a.isSiteLocalAddress();
@@ -101,6 +103,7 @@ class LanTcpPlugin extends TcpPlugin {
 		for(NetworkInterface iface : ifaces) {
 			for(InetAddress a : Collections.list(iface.getInetAddresses())) {
 				if(addr != null && a.equals(addr)) continue;
+				if(a instanceof Inet6Address) continue;
 				if(a.isLoopbackAddress()) continue;
 				boolean link = a.isLinkLocalAddress();
 				boolean site = a.isSiteLocalAddress();
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 8f4bbb7903..008e118555 100644
--- a/briar-core/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java
+++ b/briar-core/src/net/sf/briar/plugins/tcp/WanTcpPlugin.java
@@ -2,6 +2,7 @@ package net.sf.briar.plugins.tcp;
 
 import static java.util.logging.Level.WARNING;
 
+import java.net.Inet6Address;
 import java.net.InetAddress;
 import java.net.InetSocketAddress;
 import java.net.NetworkInterface;
@@ -84,6 +85,7 @@ class WanTcpPlugin extends TcpPlugin {
 		for(NetworkInterface iface : ifaces) {
 			for(InetAddress a : Collections.list(iface.getInetAddresses())) {
 				if(addr != null && a.equals(addr)) continue;
+				if(a instanceof Inet6Address) continue;
 				if(a.isLoopbackAddress()) continue;
 				boolean link = a.isLinkLocalAddress();
 				boolean site = a.isSiteLocalAddress();
@@ -93,8 +95,10 @@ class WanTcpPlugin extends TcpPlugin {
 		// Accept interfaces with local addresses that can be port-mapped
 		if(port == 0) port = chooseEphemeralPort();
 		mappingResult = portMapper.map(port);
-		if(mappingResult != null && mappingResult.isUsable())
-			addrs.add(mappingResult.getInternal());
+		if(mappingResult != null && mappingResult.isUsable()) {
+			InetSocketAddress a = mappingResult.getInternal();
+			if(!(a.getAddress() instanceof Inet6Address)) addrs.add(a);
+		}
 		return addrs;
 	}
 
-- 
GitLab