From fb6acfaff7181b70d06cf41cead9df795288dbf8 Mon Sep 17 00:00:00 2001 From: teor Date: Thu, 25 Feb 2021 09:27:56 +1000 Subject: [PATCH] Update the acceptance test port range (#1812) Windows can reserve or use ports up to 53500. Windows and macOS sequentially allocate ephemeral ports, starting at 41952. --- zebrad/tests/acceptance.rs | 19 +++++++++++++++---- 1 file changed, 15 insertions(+), 4 deletions(-) diff --git a/zebrad/tests/acceptance.rs b/zebrad/tests/acceptance.rs index 2b8106e7..032b7597 100644 --- a/zebrad/tests/acceptance.rs +++ b/zebrad/tests/acceptance.rs @@ -904,10 +904,21 @@ fn sync_past_sapling_testnet() { /// times. For example: setting up both ends of a connection, or re-using /// the same port multiple times. fn random_known_port() -> u16 { - // Use the intersection of the IANA ephemeral port range, and the Linux - // ephemeral port range: - // https://en.wikipedia.org/wiki/Ephemeral_port#Range - rand::thread_rng().gen_range(49152, 60999) + // Use the intersection of the IANA/Windows/macOS ephemeral port range, + // and the Linux ephemeral port range: + // - https://en.wikipedia.org/wiki/Ephemeral_port#Range + // excluding ports less than 53500, to avoid: + // - typical Hyper-V reservations up to 52000: + // - https://github.com/googlevr/gvr-unity-sdk/issues/1002 + // - https://github.com/docker/for-win/issues/3171 + // - the MOM-Clear port 51515 + // - https://docs.microsoft.com/en-us/troubleshoot/windows-server/networking/service-overview-and-network-port-requirements + // - the LDAP Kerberos byte-swapped reservation 53249 + // - https://docs.microsoft.com/en-us/troubleshoot/windows-server/identity/ldap-kerberos-server-reset-tcp-sessions + // - macOS and Windows sequential ephemeral port allocations, + // starting from 49152: + // - https://dataplane.org/ephemeralports.html + rand::thread_rng().gen_range(53500, 60999) } /// Returns the "magic" port number that tells the operating system to