mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-08 22:14:59 +00:00
Use preferIPv6Addresses for sort order, not preferIPv4Stack
java.net.preferIPv6Addresses is a better choice. preferIPv4Stack is a nuclear option and you just won't even bind to any IPv6 addresses. This reduces confusion.
This commit is contained in:
parent
ee227efc62
commit
3ca12889e5
@ -51,12 +51,12 @@ public abstract class NetworkUtils {
|
|||||||
* @deprecated transition mechanism only
|
* @deprecated transition mechanism only
|
||||||
*/
|
*/
|
||||||
@Deprecated
|
@Deprecated
|
||||||
static final boolean PREFER_V4 = Boolean.parseBoolean(System.getProperty("java.net.preferIPv4Stack", "true"));
|
static final boolean PREFER_V6 = Boolean.parseBoolean(System.getProperty("java.net.preferIPv6Addresses", "false"));
|
||||||
|
|
||||||
/** Sorts an address by preference. This way code like publishing can just pick the first one */
|
/** Sorts an address by preference. This way code like publishing can just pick the first one */
|
||||||
static int sortKey(InetAddress address, boolean prefer_v4) {
|
static int sortKey(InetAddress address, boolean prefer_v6) {
|
||||||
int key = address.getAddress().length;
|
int key = address.getAddress().length;
|
||||||
if (prefer_v4 == false) {
|
if (prefer_v6) {
|
||||||
key = -key;
|
key = -key;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ public abstract class NetworkUtils {
|
|||||||
Collections.sort(list, new Comparator<InetAddress>() {
|
Collections.sort(list, new Comparator<InetAddress>() {
|
||||||
@Override
|
@Override
|
||||||
public int compare(InetAddress left, InetAddress right) {
|
public int compare(InetAddress left, InetAddress right) {
|
||||||
int cmp = Integer.compare(sortKey(left, PREFER_V4), sortKey(right, PREFER_V4));
|
int cmp = Integer.compare(sortKey(left, PREFER_V6), sortKey(right, PREFER_V6));
|
||||||
if (cmp == 0) {
|
if (cmp == 0) {
|
||||||
cmp = new BytesRef(left.getAddress()).compareTo(new BytesRef(right.getAddress()));
|
cmp = new BytesRef(left.getAddress()).compareTo(new BytesRef(right.getAddress()));
|
||||||
}
|
}
|
||||||
|
@ -34,8 +34,8 @@ public class NetworkUtilsTests extends ESTestCase {
|
|||||||
public void testSortKey() throws Exception {
|
public void testSortKey() throws Exception {
|
||||||
InetAddress localhostv4 = InetAddress.getByName("127.0.0.1");
|
InetAddress localhostv4 = InetAddress.getByName("127.0.0.1");
|
||||||
InetAddress localhostv6 = InetAddress.getByName("::1");
|
InetAddress localhostv6 = InetAddress.getByName("::1");
|
||||||
assertTrue(NetworkUtils.sortKey(localhostv4, true) < NetworkUtils.sortKey(localhostv6, true));
|
assertTrue(NetworkUtils.sortKey(localhostv4, false) < NetworkUtils.sortKey(localhostv6, false));
|
||||||
assertTrue(NetworkUtils.sortKey(localhostv6, false) < NetworkUtils.sortKey(localhostv4, false));
|
assertTrue(NetworkUtils.sortKey(localhostv6, true) < NetworkUtils.sortKey(localhostv4, true));
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user