From 481bbe8513ee0e67d62570dbb4e1ab5abc389ea3 Mon Sep 17 00:00:00 2001 From: Zoltan Papp Date: Thu, 16 Jan 2025 16:19:07 +0100 Subject: [PATCH] [relay] Set InitialPacketSize to the maximum allowable value (#3188) Fixes an issue on macOS where the server throws errors with default settings: failed to write transport message to: DATAGRAM frame too large. Further investigation is required to optimize MTU-related values. --- relay/client/dialer/quic/quic.go | 7 ++++--- relay/server/listener/quic/listener.go | 3 ++- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/relay/client/dialer/quic/quic.go b/relay/client/dialer/quic/quic.go index 593d1334b..7fd486f87 100644 --- a/relay/client/dialer/quic/quic.go +++ b/relay/client/dialer/quic/quic.go @@ -29,9 +29,10 @@ func (d Dialer) Dial(ctx context.Context, address string) (net.Conn, error) { } quicConfig := &quic.Config{ - KeepAlivePeriod: 30 * time.Second, - MaxIdleTimeout: 4 * time.Minute, - EnableDatagrams: true, + KeepAlivePeriod: 30 * time.Second, + MaxIdleTimeout: 4 * time.Minute, + EnableDatagrams: true, + InitialPacketSize: 1452, } udpConn, err := nbnet.ListenUDP("udp", &net.UDPAddr{IP: net.IPv4zero, Port: 0}) diff --git a/relay/server/listener/quic/listener.go b/relay/server/listener/quic/listener.go index b6e01994f..17a5e8ab6 100644 --- a/relay/server/listener/quic/listener.go +++ b/relay/server/listener/quic/listener.go @@ -25,7 +25,8 @@ func (l *Listener) Listen(acceptFn func(conn net.Conn)) error { l.acceptFn = acceptFn quicCfg := &quic.Config{ - EnableDatagrams: true, + EnableDatagrams: true, + InitialPacketSize: 1452, } listener, err := quic.ListenAddr(l.Address, l.TLSConfig, quicCfg) if err != nil {