mirror of
https://github.com/qdm12/gluetun.git
synced 2026-06-20 11:02:59 +02:00
feat(pmtud/tcp): support mixed IPv4 and IPv6 TCP servers
- Add default cloudflare and google tls ipv6 servers to default tcp servers - update integration test to try against both ipv4 and ipv6 servers
This commit is contained in:
@@ -18,17 +18,16 @@ func Test_findHighestMSSDestination(t *testing.T) {
|
||||
t.Parallel()
|
||||
|
||||
netlinker := netlink.New(&noopLogger{})
|
||||
defaultIPv4MTU, err := findDefaultIPv4RouteMTU(netlinker)
|
||||
require.NoError(t, err, "finding default IPv4 route MTU")
|
||||
defaultMTU, err := findDefaultRouteMTU(netlinker)
|
||||
require.NoError(t, err, "finding default route MTU")
|
||||
|
||||
ctx, cancel := context.WithCancel(t.Context())
|
||||
|
||||
const family = constants.AF_INET
|
||||
fd, stop, err := startRawSocket(family, excludeMark)
|
||||
families := []int{constants.AF_INET, constants.AF_INET6}
|
||||
familyToFD, stop, err := startRawSockets(families, excludeMark)
|
||||
require.NoError(t, err)
|
||||
|
||||
const ipv4 = true
|
||||
tracker := newTracker(fd, ipv4)
|
||||
tracker := newTracker(familyToFD)
|
||||
trackerCh := make(chan error)
|
||||
go func() {
|
||||
trackerCh <- tracker.listen(ctx)
|
||||
@@ -44,13 +43,15 @@ func Test_findHighestMSSDestination(t *testing.T) {
|
||||
dsts := []netip.AddrPort{
|
||||
netip.AddrPortFrom(netip.AddrFrom4([4]byte{1, 1, 1, 1}), 443),
|
||||
netip.AddrPortFrom(netip.AddrFrom4([4]byte{8, 8, 8, 8}), 443),
|
||||
netip.AddrPortFrom(netip.MustParseAddr("2606:4700:4700::1111"), 443),
|
||||
netip.AddrPortFrom(netip.MustParseAddr("2001:4860:4860::8888"), 443),
|
||||
}
|
||||
const timeout = time.Second
|
||||
fw := getFirewall(t)
|
||||
logger := &noopLogger{}
|
||||
|
||||
dst, mss, err := findHighestMSSDestination(t.Context(), fd, dsts,
|
||||
excludeMark, defaultIPv4MTU, timeout, tracker, fw, logger)
|
||||
dst, mss, err := findHighestMSSDestination(t.Context(), familyToFD, dsts,
|
||||
excludeMark, defaultMTU, timeout, tracker, fw, logger)
|
||||
require.NoError(t, err, "finding highest MSS destination")
|
||||
assert.Contains(t, dsts, dst, "destination should be in the provided list")
|
||||
assert.Greater(t, mss, uint32(1000), "MSS should be greater than 1000")
|
||||
|
||||
Reference in New Issue
Block a user