lib/connections: Add more methods to the quic conn wrapper (#7643)

This commit is contained in:
Simon Frei 2021-05-09 13:45:08 +02:00 committed by GitHub
parent 3746c899b7
commit faf15b4567
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
1 changed files with 11 additions and 2 deletions

View File

@ -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)
}