Skip to content

Commit

Permalink
Update the acceptance test port range (#1812)
Browse files Browse the repository at this point in the history
Windows can reserve or use ports up to 53500.

Windows and macOS sequentially allocate ephemeral ports,
starting at 41952.
  • Loading branch information
teor2345 authored Feb 24, 2021
1 parent 78f1627 commit fb6acfa
Showing 1 changed file with 15 additions and 4 deletions.
19 changes: 15 additions & 4 deletions zebrad/tests/acceptance.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit fb6acfa

Please sign in to comment.