mirror of
https://github.com/bitcoin/bitcoin.git
synced 2026-01-31 18:51:12 +00:00
On FreeBSD, the default ephemeral port range (10000-65535) overlaps with the test framework's static port range (11000-26000), causing intermittent "address already in use" failures when tests use dynamic port allocation (port=0). Add a helper function that sets the IP_PORTRANGE/IPV6_PORTRANGE socket option to IP_PORTRANGE_HIGH before binding, which requests ports from the high range (49152-65535) instead. This range does not overlap with the test framework's static ports. Constants from FreeBSD's netinet/in.h and netinet6/in6.h: - IP_PORTRANGE = 19 (for IPv4 sockets) - IPV6_PORTRANGE = 14 (for IPv6 sockets) - IP_PORTRANGE_HIGH = 1 Fixes: bitcoin/bitcoin#34331 Co-Authored-By: Vasil Dimov <vd@FreeBSD.org> Co-Authored-By: MarcoFalke <*~=\`'#}+{/-|&$^_@721217.xyz>