From faf15b4567a37ab543ae660f8729355c8e872e68 Mon Sep 17 00:00:00 2001 From: Simon Frei Date: Sun, 9 May 2021 13:45:08 +0200 Subject: [PATCH] lib/connections: Add more methods to the quic conn wrapper (#7643) --- lib/connections/quic_listen.go | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/lib/connections/quic_listen.go b/lib/connections/quic_listen.go index 5c90cfff4..7c4e9fdc4 100644 --- a/lib/connections/quic_listen.go +++ b/lib/connections/quic_listen.go @@ -219,17 +219,26 @@ func (quicListenerFactory) Enabled(cfg config.Configuration) bool { return true } +// stunConnQUICWrapper provides methods used by quic. +// https://pkg.go.dev/github.com/lucas-clemente/quic-go#OOBCapablePacketConn +// https://github.com/lucas-clemente/quic-go/blob/master/packet_handler_map.go#L85 type stunConnQUICWrapper struct { net.PacketConn underlying *net.UDPConn } -// SetReadBuffer is required by QUIC < v0.20.0 func (s *stunConnQUICWrapper) SetReadBuffer(size int) error { return s.underlying.SetReadBuffer(size) } -// SyscallConn is required by QUIC func (s *stunConnQUICWrapper) SyscallConn() (syscall.RawConn, error) { return s.underlying.SyscallConn() } + +func (s *stunConnQUICWrapper) ReadMsgUDP(b, oob []byte) (n, oobn, flags int, addr *net.UDPAddr, err error) { + return s.underlying.ReadMsgUDP(b, oob) +} + +func (s *stunConnQUICWrapper) WriteMsgUDP(b, oob []byte, addr *net.UDPAddr) (n, oobn int, err error) { + return s.underlying.WriteMsgUDP(b, oob, addr) +}