This commit is contained in:
parent
83fcb49894
commit
767e1c6f58
|
@ -90,13 +90,17 @@ func (t *quicListener) serve(ctx context.Context) error {
|
|||
|
||||
svc, conn := stun.New(t.cfg, t, packetConn)
|
||||
defer func() { _ = conn.Close() }()
|
||||
wrapped := &stunConnQUICWrapper{
|
||||
PacketConn: conn,
|
||||
underlying: packetConn.(*net.UDPConn),
|
||||
}
|
||||
|
||||
go svc.Serve(ctx)
|
||||
|
||||
registry.Register(t.uri.Scheme, conn)
|
||||
defer registry.Unregister(t.uri.Scheme, conn)
|
||||
registry.Register(t.uri.Scheme, wrapped)
|
||||
defer registry.Unregister(t.uri.Scheme, wrapped)
|
||||
|
||||
listener, err := quic.Listen(conn, t.tlsCfg, quicConfig)
|
||||
listener, err := quic.Listen(wrapped, t.tlsCfg, quicConfig)
|
||||
if err != nil {
|
||||
l.Infoln("Listen (BEP/quic):", err)
|
||||
return err
|
||||
|
@ -213,3 +217,13 @@ func (f *quicListenerFactory) New(uri *url.URL, cfg config.Wrapper, tlsCfg *tls.
|
|||
func (quicListenerFactory) Enabled(cfg config.Configuration) bool {
|
||||
return true
|
||||
}
|
||||
|
||||
type stunConnQUICWrapper struct {
|
||||
net.PacketConn
|
||||
underlying *net.UDPConn
|
||||
}
|
||||
|
||||
// SetReadBuffer is required by QUIC.
|
||||
func (s *stunConnQUICWrapper) SetReadBuffer(size int) error {
|
||||
return s.underlying.SetReadBuffer(size)
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue