From de6145c220450cc92497b82fe4c657bcdacee804 Mon Sep 17 00:00:00 2001 From: Paul Galbraith Date: Sat, 27 Aug 2022 15:59:28 -0400 Subject: [PATCH] Specify port when trying to determine egress interface. Specifying the DNS port when trying to route to a root server seems to work better (at least on Mac with temurin JDK 17). --- README.md | 3 ++- src/main/java/com/fasterxml/uuid/EthernetAddress.java | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 138fd7a..a3ed916 100644 --- a/README.md +++ b/README.md @@ -76,7 +76,8 @@ UUID anotherUuid = gen.generate(); If your machine has a standard IP networking setup, the `Generators.egressTimeBasedGenerator` (added in JUG 4.1) factory method will try to determine which network interface corresponds to the default route for all outgoing network traffic, and use that for creating a time based generator. -This is likely a good choice for common usage scenarios if you want a version 1 UUID generator: +This is likely a good choice for common usage scenarios if you want a version 1 UUID generator, but unfortunately +is known not to work reliably on some platforms. ```java TimeBasedGenerator gen = Generators.egressTimeBasedGenerator(); diff --git a/src/main/java/com/fasterxml/uuid/EthernetAddress.java b/src/main/java/com/fasterxml/uuid/EthernetAddress.java index acaa446..2acd29c 100644 --- a/src/main/java/com/fasterxml/uuid/EthernetAddress.java +++ b/src/main/java/com/fasterxml/uuid/EthernetAddress.java @@ -325,7 +325,7 @@ public static EthernetAddress fromEgressInterface() String roots = "abcdefghijklm"; int index = new Random().nextInt(roots.length()); String name = roots.charAt(index) + ".root-servers.net"; - InetSocketAddress externalAddress = new InetSocketAddress(name, 0); + InetSocketAddress externalAddress = new InetSocketAddress(name, 53); if (externalAddress.isUnresolved()) { externalAddress = new InetSocketAddress("1.1.1.1", 0); }